步骤:
1.将页面保存在templates目录下
2.坐标
springboot环境【spring+springMVC】 即:Web启动器
enjoy坐标【不是启动器,代表着不包含一些配置的】
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>enjoy</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.配置enjoy视图解析器
页面的前缀setSuffix(".html");
页面的后缀engine.setBaseTemplatePath("/templates/");
@Configuration
public class SpringBootConfig {
@Bean(name="jfinalViewResolver")
public JFinalViewResolver getJFinalViewResolver(){
// 创建用于整合 spring boot 的 ViewResolver 扩展对象
JFinalViewResolver jfr = new JFinalViewResolver();
// 对 spring boot 进行配置
jfr.setSuffix(".html");
jfr.setContentType("text/html;charset=UTF-8");
jfr.setOrder(0);
// 设置在模板中可通过 #(session.value) 访问 session 中的数据
jfr.setSessionInView(true);
// 获取 engine 对象,对 enjoy 模板引擎进行配置,配置方式与前面章节完全一样
Engine engine = JFinalViewResolver.engine;
// 热加载配置能对后续配置产生影响,需要放在最前面
engine.setDevMode(true);
// 使用 ClassPathSourceFactory 从 class path 与 jar 包中加载模板文件
engine.setToClassPathSourceFactory();
// 在使用 ClassPathSourceFactory 时要使用 setBaseTemplatePath
// 代替 jfr.setPrefix("/view/")
engine.setBaseTemplatePath("/templates/");
// 更多配置与前面章节完全一样
// engine.addDirective(...)
// engine.addSharedMethod(...);
return jfr;
}
}
4.使用
springMVC中的controller层的方法的返回值为String,且方法上面不加其他注解
默认代表的是未来要跳转的页面的逻辑名称
enjoy模板引擎的理解流程:
当你的控制层方法返回值为String时,
模板引擎会带着字符串进入到3步骤配置好的模板引擎配置类里面
就会根据视图解析器把传递过来的逻辑名称拼前后缀,
定位到真正的页面, 然后跳转,渲染,响应给用户
@Controller
@RequestMapping("/one")
public class OneController {
@RequestMapping("/show1")
public String show1(@RequestParam("msg1") String msg){
System.out.println("show1:"+msg);
return "success";
}