IDEA Springboot 整合 beetl 模板引擎

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37450089/article/details/85265497

省略创建springboot项目的步骤

配置pox.xml添加freemarker依赖

        <!--beetl 模板引擎-->
		<dependency>
			<groupId>com.ibeetl</groupId>
			<artifactId>beetl-framework-starter</artifactId>
			<version>1.1.70.RELEASE</version>
		</dependency>

法一:

starter 自动处理以btl结尾的视图,模板根目录是Spring Boot默认的templates目录。

 这样看来可以直接使用

创建beetl页面userInfo.btl 当然也可用直接用html,以btl为后缀是为了区分其他模板语言,也为了让启动以来直接处理。

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
${name}
${id}
</body>
</html>

编写BeetlController

@Controller
@RequestMapping("beetl")
public class BeetlController {

    @RequestMapping("/showuser.html")
    public ModelAndView showUsername(String id) {
        ModelAndView mv = new ModelAndView();
        mv.addObject("id", id);
        mv.addObject("name", "dongguo1");
        mv.setViewName("/userInfo.btl");
        return mv;
    }
}

application.yml中的配置

server:
    port: 8080
    servlet:
      context-path: /springboot-web

访问页面 

http://localhost:8080/springboot-web/beetl/showuser.html?id=456

 法二(转 https://blog.csdn.net/xslde_com/article/details/81132673):

使用Starter来配置已经够用,如果你想自己配置模板引擎, 通过java config来配置 beetl需要的BeetlGroupUtilConfiguration,和 BeetlSpringViewResolver,

创建beetl配置文件:BeetlConf.class

package com.xslde.configurer;
 
import org.beetl.core.resource.ClasspathResourceLoader;
import org.beetl.ext.spring.BeetlGroupUtilConfiguration;
import org.beetl.ext.spring.BeetlSpringViewResolver;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
/**
 * @Author xslde
 * @Description
 * @Date 2018/7/20 15:17
 */
@Configuration //加载配置文件
public class BeetlConf {
 
    @Value("${beetl.templatesPath}") String templatesPath;//模板根目录 ,比如 "templates"
    @Bean(name = "beetlConfig")
    public BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {
        BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();
        //获取Spring Boot 的ClassLoader
        ClassLoader loader = Thread.currentThread().getContextClassLoader();
        if(loader==null){
            loader = BeetlConf.class.getClassLoader();
        }
        //beetlGroupUtilConfiguration.setConfigProperties(extProperties);//额外的配置,可以覆盖默认配置,一般不需要
        ClasspathResourceLoader cploder = new ClasspathResourceLoader(loader,
                templatesPath);
        beetlGroupUtilConfiguration.setResourceLoader(cploder);
        beetlGroupUtilConfiguration.init();
        //如果使用了优化编译器,涉及到字节码操作,需要添加ClassLoader
        beetlGroupUtilConfiguration.getGroupTemplate().setClassLoader(loader);
        return beetlGroupUtilConfiguration;
 
    }
 
    @Bean(name = "beetlViewResolver")
    public BeetlSpringViewResolver getBeetlSpringViewResolver(@Qualifier("beetlConfig") BeetlGroupUtilConfiguration beetlGroupUtilConfiguration) {
        BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
        beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
        beetlSpringViewResolver.setOrder(0);
        beetlSpringViewResolver.setConfig(beetlGroupUtilConfiguration);
        return beetlSpringViewResolver;
    }
 
}


在application.yml中配置模板引擎路径:

server:
    port: 8080
    servlet:
      context-path: /springboot-web
#模板路径
beetl:
  templatesPath: templates

创建一个 BeetlAction.class

package com.xslde.action;
 
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
 
/**
 * @Author xslde
 * @Description
 * @Date 2018/7/20 15:22
 */
@Controller
public class BeetlAction {
 
    @RequestMapping("/index")
    public String beetl(Model model) {
        model.addAttribute("beetl", "测试一下通过模板引擎传递参数!");
        return "index.html";
    }
 
}


在templates文件夹下创建一个html文件

index.html



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试页面</title>
</head>
<body>
<span>通过beetl取值</span>
<h1>${beetl!}</h1>
</body>
</html>

访问页面 

 http://localhost:8080/springboot-web/beetl/index

猜你喜欢

转载自blog.csdn.net/m0_37450089/article/details/85265497