Spring Boot支持多种视图技术,内置如下:
FreeMarker
Groovy
Thymeleaf
Mustache
在这一节中我为大家讲解Spring中使用模板技术。
简单介绍一下FreeMarker 模板技术。
1.首先在pom.xml文件中引入依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-freemarker -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
2.SpringBoot中模板都在resource/templates文件下面,我们创建一个简单的test.ftl模板:
简单的模板
<html>
<body>
${use.name}
</p>
${use.age}
</body>
</html>
3.创建Controller类
package com.unitop.Contorller;
import com.unitop.entity.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@RestController
public class Helloword {
//这是一个欢迎页面
@RequestMapping("/index")
public String index( int i){
return "HeloWord SpringBoot"+i;
}
//返回的MOdelAndView视图
@RequestMapping("/modelview")
public ModelAndView show(User user){
ModelAndView modelAndView = new ModelAndView();
User user1 =new User();//放入一个对象
user1.setAge(user.getAge());
user1.setName(user.getName());
modelAndView.addObject("use",user1);
modelAndView.setViewName("/test"); //映射页面模板
return modelAndView;
}
}
4.User对象实体类
package com.unitop.entity;
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}
5.在浏览器里面访问http://127.0.0.1:8080/modelview?name=yantianpeng&age=12
6.在讲解一下页面返回的是list集合的时候页面的接收效果
先创建一个list.ftl模板
代码如下:
<html>
<body>
<#list list as use >
<tr>
姓名: <td>${use.name}</td>
年龄:<td>${use.age}</td>
</tr>
</#list>
</body>
</html>
7.在上一步的基础上我们创建有个list里面包含了两个或者多个对象
创建一个Controller 在里面添加一个showList方法:
@RequestMapping("/modelviewList")
public ModelAndView showList(){
ModelAndView modelAndView =new ModelAndView();
User user1 =new User();//创建对象
user1.setName("yantianpeng");
user1.setAge(26);
User user2 =new User();
user2.setAge(25);
user2.setName("马庆");
List<User> list =new ArrayList<User>();//创建list
list.add(user1);
list.add(user2);
modelAndView.addObject("list",list);//吧list放入到modelView里面
modelAndView.setViewName("/test");
return modelAndView;
}
- 在页面我们访问127.0.0.1:8080/modelviewList
注意在创建的模板中我们需要了解FreeMarker语法。