添加thymeleaf的jar包
2. 新建一个Servlet类ViewBaseServlet
publicclassViewBaseServletextendsHttpServlet {
privateTemplateEnginetemplateEngine;
@Override
publicvoidinit() throwsServletException {
// 1.获取ServletContext对象
ServletContextservletContext=this.getServletContext();
// 2.创建Thymeleaf解析器对象
ServletContextTemplateResolvertemplateResolver=newServletContextTemplateResolver(servletContext);
// 3.给解析器对象设置参数
// ①HTML是默认模式,明确设置是为了代码更容易理解
templateResolver.setTemplateMode(TemplateMode.HTML);
// ②设置前缀
StringviewPrefix=servletContext.getInitParameter("view-prefix");
templateResolver.setPrefix(viewPrefix);
// ③设置后缀
StringviewSuffix=servletContext.getInitParameter("view-suffix");
templateResolver.setSuffix(viewSuffix);
// ④设置缓存过期时间(毫秒)
templateResolver.setCacheTTLMs(60000L);
// ⑤设置是否缓存
templateResolver.setCacheable(true);
// ⑥设置服务器端编码方式
templateResolver.setCharacterEncoding("utf-8");
// 4.创建模板引擎对象
templateEngine=newTemplateEngine();
// 5.给模板引擎对象设置模板解析器
templateEngine.setTemplateResolver(templateResolver);
}
protectedvoidprocessTemplate(StringtemplateName, HttpServletRequestreq, HttpServletResponseresp) throwsIOException {
// 1.设置响应体内容类型和字符集
resp.setContentType("text/html;charset=UTF-8");
// 2.创建WebContext对象
WebContextwebContext=newWebContext(req, resp, getServletContext());
// 3.处理模板数据
templateEngine.process(templateName, webContext, resp.getWriter());
}
}
在web.xml文件中添加配置
-- 配置前缀 view--prefix
-- 配置后缀 view--suffix
<!-- 在上下文参数中配置视图前缀和视图后缀 -->
<context-param>
<param-name>view-prefix</param-name>
<param-value>/</param-value>
</context-param>
<context-param>
<param-name>view-suffix</param-name>
<param-value>.html</param-value>
</context-param>
使得我们的Servlet继承ViewBaseServlet
@WebServlet("/index")
publicclassIndexServletextendsViewBaseServlet {
@Override
protectedvoiddoGet(HttpServletRequestreq, HttpServletResponseresp) throwsServletException, IOException {
BaseBaoImplebaseBaoImple=newBaseBaoImple();
List<User>users=baseBaoImple.selectData(User.class);
//System.out.println(users);
HttpSessionsession=req.getSession();
session.setAttribute("user",users);
//此处的视图名称是 index
//那么thymeleaf会将这个 逻辑视图名称 对应到 物理视图 名称上去
//逻辑视图名称:index
//物理视图名称:view-prefix + 逻辑视图名称 + view-suffix
//所以真实的视图名称是: / index .html
super.processTemplate("indexD",req,resp);
}
}
根据逻辑视图名称 得到 物理视图名称
//此处的视图名称是 index//那么thymeleaf会将这个 逻辑视图名称 对应到 物理视图 名称上去//逻辑视图名称:index//物理视图名称:view-prefix + 逻辑视图名称 + view-suffix//所以真实的视图名称是: / index .htmlsuper.processTemplate("index",req,resp);
使用thymeleaf的标签
th : if , th : unless , th : each , th : text