Thymeleaf视图
生活随笔
收集整理的這篇文章主要介紹了
Thymeleaf视图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:添加thymeleaf.jar包
二:新建一個Servlet類的ViewBaseServlet
package myssm.mySpringMVC;import org.thymeleaf.TemplateEngine; import org.thymeleaf.context.WebContext; import org.thymeleaf.templatemode.TemplateMode; import org.thymeleaf.templateresolver.ServletContextTemplateResolver;import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;public class ViewBaseServlet extends HttpServlet {private TemplateEngine templateEngine;@Overridepublic void init() throws ServletException {// 1.獲取ServletContext對象ServletContext servletContext = this.getServletContext();// 2.創建Thymeleaf解析器對象ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(servletContext);// 3.給解析器對象設置參數// ①HTML是默認模式,明確設置是為了代碼更容易理解templateResolver.setTemplateMode(TemplateMode.HTML);// ②設置前綴String viewPrefix = servletContext.getInitParameter("view-prefix");templateResolver.setPrefix(viewPrefix);// ③設置后綴String viewSuffix = servletContext.getInitParameter("view-suffix");templateResolver.setSuffix(viewSuffix);// ④設置緩存過期時間(毫秒)templateResolver.setCacheTTLMs(60000L);// ⑤設置是否緩存templateResolver.setCacheable(true);// ⑥設置服務器端編碼方式templateResolver.setCharacterEncoding("utf-8");// 4.創建模板引擎對象templateEngine = new TemplateEngine();// 5.給模板引擎對象設置模板解析器templateEngine.setTemplateResolver(templateResolver);}//可以幫助我們完成資源的轉發并且對數據進行渲染protected void processTemplate(String templateName, HttpServletRequest req, HttpServletResponse resp) throws IOException {// 1.設置響應體內容類型和字符集resp.setContentType("text/html;charset=UTF-8");// 2.創建WebContext對象WebContext webContext = new WebContext(req, resp, getServletContext());// 3.處理模板數據templateEngine.process(templateName, webContext, resp.getWriter());} }三:在web.xml中添加配置
prefix前綴、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
啟動處(super.process)
public class IndexServlet extends ViewBaseServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {FruitDAO fruitDAO = new FruitDAOImpl();List<Fruit> fruitList = fruitDAO.getFruitList();//保存到session作用域HttpSession session = req.getSession();session.setAttribute("fruitList",fruitList);//template:index 視圖名稱//thymeleaf會將這個邏輯視圖名稱對應到物理視圖名稱上//邏輯視圖名稱:index//物理視圖名稱:view-prefix+邏輯視圖名稱+view-suffix//真實的視圖名稱: / index .htmlsuper.processTemplate("index",req,resp);}五:根據邏輯視圖名稱和物理視圖名稱得到真實的視圖名稱
//template:index 視圖名稱//thymeleaf會將這個邏輯視圖名稱對應到物理視圖名稱上//邏輯視圖名稱:index//物理視圖名稱:view-prefix+邏輯視圖名稱+view-suffix//真實的視圖名稱: / index .html <tr th:if="${#lists.isEmpty(session.fruitList)}"><td colspan="4">對不起,庫存為空!</td></tr><tr th:unless="${#lists.isEmpty(session.fruitList)}" th:each="fruit : ${session.fruitList}"><td th:text="${fruit.fname}">蘋果</td><td th:text="${fruit.price}">5</td><td th:text="${fruit.fcount}">20</td><td><img src="imgs/del.jpg" class="delImg"/></td></tr>總結
以上是生活随笔為你收集整理的Thymeleaf视图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网件rax40可以刷梅林_深度爆料网件R
- 下一篇: 匿名子类对象