Thymeleaf动态⽣成表格Thymeleaf动态⽣成表格
⾸先导⼊依赖jar包, 将代码复制到 l
<dependencies>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
</dependencies>
Html页⾯代码如下
<!DOCTYPE html>
<html lang="en"th="">
<head>
<meta charset="UTF-8">
<title>⽤户列表</title>
</head>
<body>
<center>
<h1>⽤户列表</h1>
<table border="1">
<tr>
<td>⽤户名</td>
thyme
<td>密码</td>
<td>昵称</td>
<td>年龄</td>
</tr>
<!--                这个对应的是我们在Servlet中调⽤context的⽅法,
例如: context.setVariable("userList",userList);
存⼊的值.
所以想获取上述的userList集合, 需要在页⾯上写:
${userList} 注:这⾥的userList是setVariable第⼀个参数
th:each
由于上⾯的each中定义了⼀个变量user, 因此虽然Context中没有名为user的值,
但是仍然可以通过${user}形式获取到它⽽${user.username}
是告诉thymeleaf获取user对象中username这个属性的值,
那么thymeleaf会⾃动调⽤User类中该属性的get⽅法来获取到这个属性的值.
th:text=""的作⽤是替换其所在标签中的⽂本, 即: 开始与结束标签之间的⽂本内容
-->
<tr each="user:${userList}">
<td text="${user.username}">李⼦</td>
<td text="${user.password}">556644</td>
<td text="${user.nickname}">⼩斯</td>
<td text="${user.age}">35</td>
</tr>
</table>
</center>
</body>
</html>
在这⾥只要把代码都复制下来就可以直接运⾏了
import java.io.IOException;
import java.io.OutputStream;
import java.ServerSocket;
import java.Socket;
import java.util.ArrayList;
import java.util.List;
import org.thymeleaf.TemplateEngine;
import t.Context;
import plateresolver.FileTemplateResolver;
/**
* @Author Gemini
* @Date 2020/8/19 下午10:17
**/
public class Web{
public  ServerSocket ss;
public Socket socket;
public List<User> userList =new ArrayList<>();
public Web(){
try{
ss =new ServerSocket(8099);
}catch(IOException e){
e.printStackTrace();
}
}
public void start(){
try{
while(true){
System.out.println("");
Socket socket = ss.accept();
this.socket = socket;
addData();// 为集合添加数据
String html =template();// 创造thymeleaf
sendResponse(html);// 发送揉捏好的页⾯
}
}catch(IOException e){
e.printStackTrace();
}
}
public void addData(){
userList.add(new User("李⼦","554","LiZi",56));
userList.add(new User("关关","42","GG",55));
userList.add(new User("数擎","41","gg",55));
userList.add(new User("Jack⼦","4","LZi",55));
}
public String template(){
// 将保存所有⽤户的集合存⼊context
Context context =new Context();
context.setVariable("userList", userList);
/*
模板解释器, ⽤来告知thymeleaf 这个模板(页⾯)的情况, ⽐如字符集模板的格式等信息        */
FileTemplateResolver templateResolver =new FileTemplateResolver();
// 模板类型是html
templateResolver.setTemplateMode("html");
// 模板页⾯字符集
templateResolver.setCharacterEncoding("UTF-8");
// 创建Thymeleaf引擎, ⽤来将模板与动态数据结合从⽽⽣成动态页⾯
TemplateEngine te =new TemplateEngine();
// 将模板解析器设置到引擎中, 使其清楚模板的相关情况
te.setTemplateResolver(templateResolver);
String html = te.process("./config/userList.html", context);
return html;
return html;
}
public void sendResponse(String html){
try{
OutputStream os = OutputStream();
// 将动态页⾯响应给客户端
String line ="HTTP/1.1 200 OK";
byte[] data = Bytes("ISO8859-1");
os.write(data);
os.write(13);// 发送回车符
os.write(10);// 发送换⾏符
line ="Content-Type: text/html";
data = Bytes("ISO8859-1");
os.write(data);
os.write(13);// 发送回车符
os.write(10);// 发送换⾏符
byte[] htmlByte = Bytes("utf-8");
line ="Content-Length: "+ htmlByte.length;
byte[] bytes1 = Bytes("ISO8859-1");
os.write(bytes1);
os.write(13);// 发送回车符
os.write(10);// 发送换⾏符
/
/ 单独发送CRLF表⽰响应头部分发送完毕
os.write(13);// 发送回车符
os.write(10);// 发送换⾏符
os.write(htmlByte);
os.write(13);// 发送回车符
os.write(10);// 发送换⾏符
}catch(IOException e){
e.printStackTrace();
}
}
public static void main(String[] args){
Web web =new Web();
web.start();
}
}
只需要更改JAVA代码的模板路径就可以直接使⽤ !

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。