<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/templates/" /> <property name="suffix" value=".ftl" /> </bean>--> <mvc:annotation-driven /> <context:component-scan base-package="com.bingco" /> <!--配置freemarker视图解析器 --> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/templates/" /> </bean> <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="suffix" value=".ftl" /> <property name="contentType" value="text/html; charset=UTF-8" /> </bean> </beans>
这是单独使用的Demo:
@GetMapping("/getHtml") public String method2() throws IOException, TemplateException { Configuration configuration = new Configuration(Configuration.VERSION_2_3_22); configuration.setDirectoryForTemplateLoading(Paths.get(templates_path + File.separator).toFile()); configuration.setDefaultEncoding("UTF-8"); configuration.setTemplateExceptionHandler(TemplateExceptionHandler.DEBUG_HANDLER); String tempName = "test.ftl"; Template template = configuration.getTemplate(tempName); Map<String, Object> map = new HashMap<>(); map.put("message", "Hello World Java !"); File file = new File("D:/temp/" + tempName.substring(0, tempName.indexOf(".") + 1) + "html"); if (!file.exists()) { try (Writer out = new OutputStreamWriter( new FileOutputStream(file))) { template.process(map, out); out.flush(); System.out.println(" -- over --"); } } return "redirect:/index.jsp"; }