Thymeleaf的用法和作用

它是一个服务器模板渲染引擎,搭配着servlet一起使用。

Thymeleaf用法和作用

可以用来进行制作动态页面,它的用法就是通过一个servlet的转发,然后thymeleaf渲染生效,得到的结果是动态的,可以和我们的数据库进行很好的交互,其中最重要的语法就是${},然后还有一些特定的属性,可以调用实现我们的功能,它也是一个html文件,只是在此基础上通过了servlet处理。

Thymeleaf注意的地方

super.processTemplate(target, req, resp);这句代码一定要在最末尾,因为这句代码已经把servlet跳转到html页面了,当我们还在后面写内容的时候,已经不起作用了。

这一句加不加的作用在于,加上时我们在写关于thymeleaf的标签和语法时,会有提示,方便一些

页面取值有三种容易混淆的地方

首先是访问域对象(会话域,请求域,应用域),由req,session,servletContext设置的属性值,在页面上分别是直接取属性的键,通过session,通过application取值,如图:

<span th:text="${username}"></span>
<span th:text="${session.username}"></span>
<span th:text="${application.username}"></span>
req.setAttribute("username","张三");
HttpSession session = req.getSession();
session.setAttribute("username","张三");
ServletContext servletContext = getServletContext();
servletContext.setAttribute("username","张三");

其次是页面获取请求参数,是通过设置的thymeleaf网页名来获取

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>我是param网页</h1>
<p th:text="${param.username}">获取请求参数的值</p>
</body>
</html>
<p th:text="${param.username}">获取请求参数的值</p>

最后是设置一个对象来通过键->对象->属性取值(这是也就是普通的取属性值,但是它的属性值是一个对象)

学生姓名:<span th:text="${student.studentName}"></span><br>
学生姓名:<span th:text="${student.getStudentName()}"></span><br>
学生课程:<span th:text="${student.subject.subjectName}"></span><br>
学生课程:<span th:text="${student.getSubject().getSubjectName()}"></span><br>
学生学校:<span th:text="${student.schoolList.get(0).schoolName}"></span><br>
学生学校:<span th:text="${student.getSchoolList().get(1).getSchoolName}"></span><br>
学生老师:<span th:text="${student.teacherMap.get('A1').teacherName}"></span><br>
学生老师:<span th:text="${student.teacherMap.get('C3').teacherName}"></span><br>
package com.sun.servlet;

import com.sun.bean.School;
import com.sun.bean.Student;
import com.sun.bean.Subject;
import com.sun.bean.Teacher;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@WebServlet("/OgnlServlet")
public class OgnlServlet extends ViewBaseServlet{
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Subject subject=new Subject("JAVAEE课程");
        School school1=new School("湖北理工学院");
        School school2=new School("湖北师范学院");
        List<School> schoolList=new ArrayList<>();
        schoolList.add(school1);
        schoolList.add(school2);
        Map<String, Teacher> teacherMap=new HashMap<>();
        Teacher teacher1=new Teacher("张老师");
        Teacher teacher2=new Teacher("陈老师");
        teacherMap.put("A1",teacher1);
        teacherMap.put("C3",teacher2);
        Student student=new Student("小明",subject,schoolList,teacherMap);
        req.setAttribute("student",student);
        super.processTemplate("ognl",req,resp);
    }
}

Thymeleaf和Servlet的关系

Thymeleaf和Servlet是两个在Java Web开发中常用的技术,它们通常一起使用来构建动态的Web应用程序。 Servlet是Java EE平台的一部分,用于处理Web请求和生成Web响应。它提供了一种在服务器端生成动态内容的方式,可以接收来自客户端的HTTP请求,并生成相应的HTTP响应。

Servlet通常用于处理业务逻辑、数据库交互等任务,并生成HTML等内容返回给客户端。Thymeleaf是一种服务器端模板引擎,它允许开发人员在HTML模板中嵌入动态内容,并在服务器端进行渲染。Thymeleaf模板可以包含动态的表达式、条件判断、迭代等功能,使得开发人员能够更加灵活地生成动态内容。Thymeleaf通常用于生成HTML页面,以便在客户端展示。 在实际的Web应用程序开发中,Servlet通常用于处理请求、调用业务逻辑,然后将数据传递给Thymeleaf模板引擎进行渲染,最终生成动态的HTML页面返回给客户端。这种方式使得开发人员能够将业务逻辑和页面展示分离,提高了代码的可维护性和可扩展性。

简单来说:就是servlet处理请求,然后将处理好的结果给thymeleaf做一层华丽的包装生成动态内容。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

媪姝

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

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

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

打赏作者

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

抵扣说明:

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

余额充值