小編這次要給大家分享的是JAVA如何實(shí)現(xiàn)集成Freemarker生成靜態(tài)html,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),莘縣網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:莘縣等地區(qū)。莘縣做網(wǎng)站價(jià)格咨詢:18982081108
Springboot
1.引入Freemarker jar包
org.springframework.boot spring-boot-starter-freemarker
2.配置application.properties
### freemarker spring.freemarker.templateLoaderPath=classpath:/templates/ spring.freemarker.suffix=.ftl spring.freemarker.charset=UTF-8 spring.freemarker.request-context-attribute=request spring.freemarker.settings.number_format=0.##########
3.創(chuàng)建ftl文件
在resource文件下新增文件夾templates,在templates文件夾下存放ftl文件,例如:
FreeMarker Simple project
${key}
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"; }
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, Mapparams) { 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)建模版對(duì)象 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"; }
實(shí)現(xiàn)效果(我這里默認(rèn)保存到d:/testlogs):
Springmvc(和springboot大致相同,此處只留下配置)
1.引入Freemarker jar包
org.springframework spring-context-support 3.2.4.RELEASE org.freemarker freemarker 2.3.25-incubating
2.springmvc配置
1 zh_CN yyyy-MM-dd yyyy-MM-dd #.##
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", "測(cè)試freemarker"); //配置模板 mv.setViewName("test"); return mv; }
看完這篇關(guān)于JAVA如何實(shí)現(xiàn)集成Freemarker生成靜態(tài)html的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。