SpringBoot当中如何整合动态html模板:Thymeleaf

整合动态html模板:Thymeleaf:
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
马克-to-win@马克java社区:光是静态html还不足够,必须html还能显示动态成分,这时我们考虑使用thymeleaf,就能完全达到 springmvc的水平了,官方推荐thymeleaf。继续在上一部分的项目中,在src/main目录下,添加 resources/templates/result.html:(参考目录下:bootThymeleaf)




例4.1:

1)首先在pom.xml中添加:
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>


注意:即使导了上面的包,也没有办法访问到resources根目录下的html。至于templates目录下的html,直接或sendRedirect都不能访问。唯有用下面的方法访问。




package com.SpringbootMaven;

import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@SpringBootApplication
public class App {

    @RequestMapping("/hello")
    public String myhome(HttpServletResponse res,HttpSession session) throws IOException {
        System.out.println("spring  boot springMvc 马克-to-win!");
        session.setAttribute("user","马克-to-win 马克java社区创始人");
        return "result";
        /*下列不能再用了,在Thymeleaf框架中,sendRedirect不能跳到templates目录里的html*/
    //    res.sendRedirect("result.html");
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(App.class, args);
    }
}


index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
index1
<a href="/hello.do">test SpringMvc</a>
</body>
</html>


result.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>Title</title>
</head>

<body>
result <span th:text="${session.user}"> 您好</span>
</body>
</html>


下面做个例子,有form。(参考项目:bootThymeleafForm)





例4.2:
index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
马克-to-win@马克java社区

<form  action="login" method="post">
       姓名:<input type="text" name="markname" placeholder="用户名" /><br />
    <button type="submit" >提交</button>
</form>
</body>
</html>

app.java:

package com.SpringbootMaven;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
@SpringBootApplication
public class App {

    @RequestMapping("/login")
    public String login(@RequestParam String markname,Model model){
        System.out.println("name is"+markname);
        model.addAttribute("message", markname);
        return "result";
    }
  
    public static void main(String[] args) throws Exception {
        SpringApplication.run(App.class, args);
    }
result.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>Title</title>
</head>

<body>
result <span th:text="${message}"> 您好</span>
<div th:text="${message}">用户名</div>
</body>
</html>

测试: http://localhost:8080/index.html