首页 > 其他分享 >Servlet-thymeleaf入门与渲染index页面

Servlet-thymeleaf入门与渲染index页面

时间:2023-03-02 20:14:44浏览次数:46  
标签:index templateResolver 视图 thymeleaf 名称 Servlet view

资料来源于:B站尚硅谷JavaWeb教程(全新技术栈,全程实战) ,本人才疏学浅,记录笔记以供日后回顾
由于是多个视频内容混合在一起,因此只放了第一个链接
视频链接

知识点

 Thymeleaf - 视图模板技术
    1) 添加thymeleaf的jar包
    2) 新建一个Servlet类ViewBaseServlet
    3) 在web.xml文件中添加配置
       - 配置前缀 view-prefix
       - 配置后缀 view-suffix
    4) 使得我们的Servlet继承ViewBaseServlet

    5) 根据逻辑视图名称 得到 物理视图名称
    //此处的视图名称是 index
    //那么thymeleaf会将这个 逻辑视图名称 对应到 物理视图 名称上去
    //逻辑视图名称 :   index
    //物理视图名称 :   view-prefix + 逻辑视图名称 + view-suffix
    //所以真实的视图名称是:      /       index       .html
    super.processTemplate("index",request,response);
    6) 使用thymeleaf的标签
      th:if   ,  th:unless   , th:each   ,   th:text

具体步骤

1.新建一个目录lib_thymeleaf,存放thymeleaf所需要的jar包


当然,将jar包存放到目录下后,需要在项目模块下,添加jar包引用。

下图是添加完后的情况

2.ViewBaseServlet类的相关代码

public class ViewBaseServlet extends HttpServlet {

    private TemplateEngine templateEngine;

    @Override
    public 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());
    }
}

3.web.xml中的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- 配置上下文参数 -->
    <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>
</web-app>

标签:index,templateResolver,视图,thymeleaf,名称,Servlet,view
From: https://www.cnblogs.com/fgcs111/p/17173238.html

相关文章

  • HttpServletRequestWrapper 类&过滤指定文字
    HttpServletWrapper和HttpServletResponseWrapper1).ServletAPI中提供了一个HttpServletRequestWrapper类来包装原始的request对象,   HttpServletReques......
  • Servlet-服务器端转发与客户端重定向
    资料来源于:B站尚硅谷JavaWeb教程(全新技术栈,全程实战),本人才疏学浅,记录笔记以供日后回顾视频链接知识点1)服务器内部转发:request.getRequestDispatcher(".........
  • JAVAWEB学习-Servlet实现完整功能增删改查-完整代码
    importcom.DB;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet......
  • Servlet-Http协议、Session会话跟踪技术
    资料来源于:B站尚硅谷JavaWeb教程(全新技术栈,全程实战),本人才疏学浅,记录笔记以供日后回顾由于是多个视频内容混合在一起,因此只放了第一个链接视频链接Http协议1......
  • error in ./src/components/NumberInfo/NumberInfo.vue?vue&type=style&index=0&id=
      删除NumberInfo中的scoped,因为使用了antdv的css变量,加了scoped导致获取不到......
  • Servlet-(跳转)表单,超链接,转发,重定向
    在制作网页时,我们常用到按钮跳转或者超链接跳转,这时候就用到表单提交或超链接先说表单,我们可以只有一个提交按钮,也可以在其中添加隐藏表单,就像这样"<formid=\"form1\"......
  • 退出功能与BaseServlet抽取
    退出功能什么叫做登录了?session中有user对象。实现步骤:访问servlet,将session销毁跳转到登录页面      登录成功         退......
  • 933~934 BaseServlet抽取,Userservlet&面路径改写
    优化Servlet目的减少Servlet的数量,现在是一个功能一个Servlet,将其优化为一个模块一个Servlet,相当于在数据库中一张表对应一个Servlet,在Servlet中提......
  • z-index负值深入理解
    补充点小知识:CSS3与新时代的层叠上下文:css3之前,可能我们说会影响层叠上下文的也就position属性了,那CSS3时代的到来,对层叠上下文规则带来了新的影响,css3时代会影响层叠上下文......
  • css3中的z-index
    元素的层叠黄金准则:1)、谁大谁上:当具有明显的层叠水平标识的时候,如生效的z-index属性值,在同一个层叠上下文领域,层叠水平值大的那一个覆盖小的那一个2)】后来居上:当元素的层叠......