您的位置:首页 > 其它

Thymeleaf虚拟购物商店【二】

2017-10-19 15:41 399 查看
购物商店网站

为了更好的解释与Thymeleaf处理模板的概念,本教程将使用一个演示应用程序,您可以从项目的Web站点下载该应用程序。

这个应用程序是一个假想的虚拟购物网站,并将为我们提供了很多场景来展示Thymeleaf的许多特点。

首先,我们需要一组简单的模型实体作为应用程序:通过创建订单向客户销售的产品。我们还将管理有关这些产品的评论:



我们的应用程序也将有一个非常简单的服务层,由包含方法的服务对象组成:

public class ProductService {

...

public List<Product> findAll() {
return ProductRepository.getInstance().findAll();
}

public Product findById(Integer id) {
return ProductRepository.getInstance().findById(id);
}

}

在Web层应用程序将有一个过滤器,将委托执行Thymeleaf启用取决于请求的URL的命令:
private boolean process(HttpServletRequest request, HttpServletResponse response)
throws ServletException {

try {

// This prevents triggering engine executions for resource URLs
if (request.getRequestURI().startsWith("/css") ||
request.getRequestURI().startsWith("/images") ||
request.getRequestURI().startsWith("/favicon")) {
return false;
}

/*
* Query controller/URL mapping and obtain the controller
* that will process the request. If no controller is available,
* return false and let other filters/servlets process the request.
*/
IGTVGController controller = this.application.resolveControllerForRequest(request);
if (controller == null) {
return false;
}

/*
* Obtain the TemplateEngine instance.
*/
ITemplateEngine templateEngine = this.application.getTemplateEngine();

/*
* Write the response headers
*/
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);

/*
* Execute the controller and process view template,
* writing the results to the response writer.
*/
controller.process(
request, response, this.servletContext, templateEngine);

return true;

} catch (Exception e) {
try {
respo
4000
nse.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
} catch (final IOException ignored) {
// Just ignore this
}
throw new ServletException(e);
}

}

下面使我们的IGTVGController接口:
public interface IGTVGController {

public void process(
HttpServletRequest request, HttpServletResponse response,
ServletContext servletContext, ITemplateEngine templateEngine);

}

现在我们需要去做的就是实现IGTVGController接口,从服务层返回数据并且使用ITemplateEngine对象处理模板。

最后他是这样的



但是首先让我们看看模板引擎是如何初始化的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: