下面是关于SpringBoot整合Freemarker的攻略以及相应的语法详解。
1. SpringBoot整合freemarker的步骤
1.1 引入依赖
在pom.xml中引入相关的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
<version>2.5.1</version>
</dependency>
1.2 配置视图解析器
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.freeMarker().cache(false);
}
}
1.3 编写Freemarker模板
在resources目录下创建templates文件夹,编写Freemarker模板,例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${title}</title>
</head>
<body>
<h1>${content}</h1>
</body>
</html>
1.4 编写Controller
编写Controller类,通过ModelAndView将数据传递给模板,并指定使用的模板名称,例如:
@Controller
public class IndexController {
@RequestMapping("/")
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView("index");
modelAndView.addObject("title", "首页");
modelAndView.addObject("content", "我是首页内容");
return modelAndView;
}
}
1.5 运行项目
运行SpringBoot应用,访问http://localhost:8080/,即可看到效果。
2. Freemarker语法详解
2.1 变量输出
在Freemarker模板中,使用${variableName}
来输出变量的值,例如:
<h1>${title}</h1>
2.2 条件判断
使用<#if condition>
和<!--#if-->
来进行条件判断,例如:
<#if user.hasLogin>
<p>欢迎回来,${user.nickname}!</p>
<#else>
<p>请先<a href="/login">登录</a></p>
</#if>
2.3 循环遍历
使用<#list itemList as item>
和<!--#list-->
来进行循环遍历,例如:
<ul>
<#list articles as article>
<li>${article.title}</li>
</#list>
</ul>
2.4 引用模板
使用<#include "templateName.ftl">
来引用其他模板,例如:
<div id="header">
<#include "header.ftl">
</div>
以上是SpringBoot整合Freemarker以及相应语法的详解。如果您还有其他问题,可以在评论区留言,我会尽快回复的。
示例1:SpringBoot整合Freemarker展示动态列表
1. 引入依赖
在pom.xml中引入相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>
2. 编写Mapper
编写对应的Mapper类:
@Mapper
public interface UserMapper {
@Select("select * from user")
List<User> findAll();
}
3. 编写Controller类并注入Mapper
编写Controller类,并将Mapper注入,例如:
@Controller
public class UserController {
@Autowired
private UserMapper userMapper;
@RequestMapping("/users")
public ModelAndView index() {
ModelAndView modelAndView = new ModelAndView("users");
List<User> userList = userMapper.findAll();
modelAndView.addObject("userList", userList);
return modelAndView;
}
}
4. 编写Freemarker模板
在templates文件夹下创建users.ftl,编写Freemarker模板:
<#list userList as user>
<p>${user.username},${user.age}岁</p>
</#list>
5. 运行项目
运行SpringBoot应用,访问http://localhost:8080/users,即可看到效果。
示例2:SpringBoot整合Freemarker实现表单提交
1. 编写Controller
编写Controller类,并将数据注入,例如:
@Controller
public class FormController {
@GetMapping("/form")
public ModelAndView form() {
ModelAndView modelAndView = new ModelAndView("form");
modelAndView.addObject("title", "表单提交");
modelAndView.addObject("genderList", Arrays.asList("男", "女", "保密"));
return modelAndView;
}
@PostMapping("/form")
public ModelAndView submit(@RequestParam String username,
@RequestParam String password,
@RequestParam String gender,
@RequestParam Integer age) {
ModelAndView modelAndView = new ModelAndView("form_result");
modelAndView.addObject("title", "提交成功");
modelAndView.addObject("username", username);
modelAndView.addObject("password", password);
modelAndView.addObject("gender", gender);
modelAndView.addObject("age", age);
return modelAndView;
}
}
2. 编写Freemarker模板
在templates文件夹下创建form.ftl,编写Freemarker模板:
<h1>${title}</h1>
<form action="/form" method="post">
<p>
<label>用户名:<input type="text" name="username"></label>
</p>
<p>
<label>密码:<input type="password" name="password"></label>
</p>
<p>
<label>性别:
<select name="gender">
<#list genderList as item>
<option>${item}</option>
</#list>
</select>
</label>
</p>
<p>
<label>年龄:<input type="number" name="age"></label>
</p>
<p>
<button type="submit">提交</button>
</p>
</form>
在templates文件夹下创建form_result.ftl,编写Freemarker模板:
<h1>${title}</h1>
<p>用户名:${username}</p>
<p>密码:${password}</p>
<p>性别:${gender}</p>
<p>年龄:${age}</p>
3. 运行项目
运行SpringBoot应用,访问http://localhost:8080/form,填写表单并提交,即可看到效果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot整合freemarker和相应的语法详解 - Python技术站