亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

JAVA集成Freemarker生成靜態(tài)html過程解析

瀏覽:4日期:2022-08-31 14:15:41

Springboot

1.引入Freemarker jar包

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId></dependency>

2.配置application.properties

### freemarkerspring.freemarker.templateLoaderPath=classpath:/templates/spring.freemarker.suffix=.ftlspring.freemarker.charset=UTF-8spring.freemarker.request-context-attribute=requestspring.freemarker.settings.number_format=0.##########

3.創(chuàng)建ftl文件

JAVA集成Freemarker生成靜態(tài)html過程解析

在resource文件下新增文件夾templates,在templates文件夾下存放ftl文件,例如:

<!DOCTYPE html><html><head> <meta charset='utf-8'/> <title>FreeMarker</title></head><body><h1>Simple project</h1><h1>${key}</h1></body></html>

4.新建controller調(diào)用方法

@SuppressWarnings('unchecked') @RequestMapping(value='/test',method=RequestMethod.GET) public String test(Model model,HttpServletRequest request) { model.addAttribute('key','test project'); return 'test'; }

JAVA集成Freemarker生成靜態(tài)html過程解析

5.生成html靜態(tài)文件

使用工具類:

/** * @param modeName 模板名稱 * @param targetFileName 生成后的HTML名稱 * @param params 傳入模板的參數(shù) * @Author: zy * @Date: 2020-6-4 09:39:47 * @Description:生成靜態(tài)頁面 */ public void createHtmlByMode(String modeName, String targetFileName, Map<String, Object> params) { Writer out = null; // 找到服務(wù)器緩存目錄,可以自己指定目錄 String folder = PropertisUtil.getApplicationProperties('healthReport.logs.urls') + targetFileName; // 通過匹配路徑格式拼接完整生成路徑 String outFile = folder; try { File file = new File(outFile); // 生成空HTML文件 if (!file.exists()) {file.createNewFile(); } // 創(chuàng)建模版對象 Template template = cfg.getTemplate(modeName); // 設(shè)置輸出流 out = new OutputStreamWriter(new FileOutputStream(file), 'UTF-8');// 設(shè)置編碼 UTF-8 // 模版數(shù)據(jù)插入?yún)?shù),通過輸出流插入到HTML中 template.process(params, out); } catch (Exception e) { e.printStackTrace(); } finally { if (null != out) {try { out.flush(); out.close();} catch (IOException e) { e.printStackTrace();} } } }

修改controller中的方法:

@SuppressWarnings('unchecked') @RequestMapping(value='/test',method=RequestMethod.GET) public String test(Model model,HttpServletRequest request) { model.addAttribute('key','test project'); //生成靜態(tài)文件 Map param=new HashMap(); param.put('key', '我是被生成的靜態(tài)文件'); createHtmlByMode('test.ftl','test.html',param); return 'test'; }

實現(xiàn)效果(我這里默認(rèn)保存到d:/testlogs):

JAVA集成Freemarker生成靜態(tài)html過程解析

JAVA集成Freemarker生成靜態(tài)html過程解析

Springmvc(和springboot大致相同,此處只留下配置)

1.引入Freemarker jar包

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>3.2.4.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.freemarker/freemarker --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.25-incubating</version> </dependency>

2.springmvc配置

<!-- freemarker --> <bean class='org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer'> <property name='templateLoaderPath' value='/freemarker/ftl/'></property> <property name='defaultEncoding' value='utf-8' /> <property name='freemarkerSettings'> <props><prop key='template_update_delay'>1</prop><prop key='locale'>zh_CN</prop><prop key='datetime_format'>yyyy-MM-dd</prop><!-- 時間格式化 --><prop key='date_format'>yyyy-MM-dd</prop><prop key='number_format'>#.##</prop> </props> </property> </bean> <bean class='org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver'> <property name='cache' value='true' /> <property name='prefix' value='' /><!-- 上面已經(jīng)配了,這里就不用配啦 --> <property name='suffix' value='.ftl' /> <property name='contentType' value='text/html;charset=UTF-8' /> <property name='allowSessionOverride' value='true' /> <property name='allowRequestOverride' value='true' /> <property name='exposeSpringMacroHelpers' value='true' /> <property name='exposeRequestAttributes' value='true' /> <property name='exposeSessionAttributes' value='true' /> <property name='requestContextAttribute' value='request' /> </bean>

3.調(diào)用方式

/**返回模板信息*/ @SuppressWarnings('unchecked') @RequestMapping(value='/test',method={RequestMethod.GET}) public ModelAndView test(HttpServletRequest request) { ModelAndView mv = new ModelAndView(); //設(shè)置參數(shù) mv.addObject('key', '測試freemarker'); //配置模板 mv.setViewName('test'); return mv; }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 婷婷在线成人免费观看搜索 | 日韩在线亚洲 | 国产精品欧美日韩视频一区 | 快猫在线观看入口免费网站满十八 | 大尺度做爰床戏呻吟免费观 | 奇米狠狠色| 日韩亚洲欧美综合一区二区三区 | 国产国语一级毛片全部 | 成人三级做爰在线观看男女 | 一级毛片在线看 | 成人爱爱网站在线观看 | 亚洲精品区在线播放一区二区 | 日韩综合一区 | 亚洲精品国产成人中文 | 国产91小视频 | 国产成人激烈叫床视频 | 国产在线一区二区三区在线 | 青青热久久国产久精品秒播 | a一级毛片 | 澳门麻豆传媒精东影业 | 一区二区三区视频免费 | 另类免费视频 | mmmmxxxx国产在线观看 | 精品国产人成亚洲区 | 日本视频中文字幕一区二区 | 在线免费观看小视频 | 午夜视频精品 | 免费在线看黄网站 | 成人国产精品高清在线观看 | 亚洲欧美第一页 | 国产成人亚洲精品老王 | 亚洲午夜影视 | 成人免费小视频 | 日鲁夜鲁鲁狠狠综合视频 | 伊人久久综合影院首页 | 国产欧美日韩不卡一区二区三区 | 精品国产一区二区三区在线 | 欧美黄色录像 | 亚洲视频毛片 | 日本高清xxxx免费视频 | 一区二区亚洲视频 |