二、thymeleaf与javaweb的集成

此教程使用的Thymeleaf版本为 3.1.2.RELEASE,JDK最低要求为1.8

2.1、下载

    下载地址:https://pan.baidu.com/s/1HJf2AnPu1nwaxmOxzxUDJA?pwd=au9c 

2.2、导包

1、解压以下压缩包,

2、复制dist目录下的thymeleaf-3.1.2.RELEASE.jar到项目中的lib目录下

3、复制lib目录下所有的jar文件到项目中的lib目录下

2.3、配置thymeleaf

1、创建包:在项目包下创建com.thymeleaf包,此包用于定义配置thymeleaf的类

2、在包下创建ThymeleafConfig类,此类用于创建thymeleaf模板引擎,解析器

import javax.servlet.ServletContext;
import javax.servlet.annotation.WebListener;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.ITemplateResolver;
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;
/**
* 定义thymeleaf模板类,在全局对象中注册thymeleaf模板引擎
* @author 创蓝IT教育
*
*/
public class TemplateConfig {
	private static final String TEMPLATE_ENGINE_ATTR = "com.e-learn.thymeleaf3.TemplateEngineInstance";


  //全局注册thymeleaf模板引擎
  public static void storeTemplateEngine(ServletContext context) {
    TemplateEngine engine = templateEngine(context);
    context.setAttribute(TEMPLATE_ENGINE_ATTR, engine);
  }

	/**
    * 创建模板引擎
    */
  public static TemplateEngine getTemplateEngine(ServletContext context) {
  	return (TemplateEngine) context.getAttribute(TEMPLATE_ENGINE_ATTR);
  }
  /**
  * 创建thymeleaf模板引擎
  * @param servletContext
  * @return
  */
  private static TemplateEngine templateEngine(ServletContext servletContext) {
    TemplateEngine engine = new TemplateEngine();
    engine.setTemplateResolver(templateResolver(servletContext));
    return engine;
  }
  /**
  * 创建thymeleaf解析对象
  * @param servletContext
  * @return
  */
  private static ITemplateResolver templateResolver(ServletContext servletContext) {
    //设置解析参数,常用参数有:模板页面路径前缀,路径的后缀,解析编码,模板文件类型
    ServletContextTemplateResolver resolver = new ServletContextTemplateResolver(servletContext);
    resolver.setPrefix("/WEB-INF/");//模板页面路径前缀
    resolver.setSuffix(".html"); //模板页面路径后缀
    resolver.setCharacterEncoding("UTF-8"); //解析的编码
    resolver.setTemplateMode(TemplateMode.HTML); //模板文件的类型
    return resolver;
  }
}

3、在项目包下创建listener包,在其中创建全局监听器AppLinstener,实现ServletContextListener,在contextInitialized方法中调用TemplateConfig的templateEngine方法注册thymeleaf模板引擎

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import com.thymeleaf.demo.utitl.TemplateConfig;

@WebListener
public class AppListener implements ServletContextListener {

  @Override
  public void contextInitialized(ServletContextEvent sce) {
  TemplateConfig.storeTemplateEngine(sce.getServletContext());
  }
}

2.4,使用模板

1、在WEB-INF下创建index.html页面,在body中添加以下内容

<a th:href="@{'/aa.jsp'}">链接</a>

2、在项目包下创建servlet包,在包中创建TestServlet类,设置访问路径为"/test"

3、在TestServlet类的doPost方法中使用引擎渲染页面

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.WebContext;
import com.thymeleaf.demo.utitl.TemplateConfig;

@WebServlet("/test")
public class TestServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;


  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //获取模板引擎
    TemplateEngine engine = TemplateConfig.getTemplateEngine(getServletContext());
    //当前请求环境
    WebContext context = new WebContext(request, response, getServletContext());

    response.setCharacterEncoding("utf-8");
    //使用模板渲染页面并输出到浏览器
    engine.process("index", context, response.getWriter());
  }

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}

2.5、测试

1、启动服务

2、在浏览器中输入test访问路径,运行效果如下

 文章来源于哔站《二、thymeleaf与javaweb的集成

更多学习视频和专栏文章请到哔站个人空间: 布道师学院的个人空间-布道师学院个人主页-哔哩哔哩视频

更多资源和项目下载请到:”开源吧(找实战项目和毕设项目的好网站)“ ​ :开源吧

 

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于Servlet+Mybatis+ThymeleafJavaweb项目的技术栈主要包括以下几个方面: 1. Servlet:Servlet是JavaWeb中的一种技术规范,用于处理HTTP请求和响应。在JavaWeb应用中,Servlet可以接收并响应来自客户端的请求,同时也可以与数据库进行交互、调用业务逻辑等。 2. Mybatis:Mybatis是一种流行的Java持久层框架,它提供了一种优雅的方式来管理数据库访问。与传统的ORM框架不同,Mybatis将SQL语句和Java代码分离,开发者可以自由地编写SQL语句,同时也可以通过Mybatis提供的映射文件将Java对象和数据库表进行映射。 3. ThymeleafThymeleaf是一种流行的Java模板引擎,它可以将HTML模板和Java代码结合起来,生成动态的Web页面。与JSP相比,Thymeleaf更加灵活、易于维护,同时也支持HTML5特性、国际化等高级功能。 除此之外,基于Servlet+Mybatis+ThymeleafJavaweb项目还涉及到一些其他的技术,比如: 4. 数据库:JavaWeb应用通常需要与数据库进行交互,目前常用的数据库有MySQL、Oracle、PostgreSQL等。 5. Maven:Maven是一种流行的Java项目管理工具,它可以自动化地管理项目依赖、构建过程、测试过程等。 6. Git:Git是一种流行的版本控制工具,它可以帮助开发者协同开发、管理代码变更、回滚代码等。 总之,基于Servlet+Mybatis+ThymeleafJavaweb项目是一个完整的JavaWeb应用,需要涉及多个技术方面才能实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱分享的代码君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值