电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

JAVA集成Freemarker生成靜態html過程解析

瀏覽:3日期: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.創建ftl文件

JAVA集成Freemarker生成靜態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調用方法

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

JAVA集成Freemarker生成靜態html過程解析

5.生成html靜態文件

使用工具類:

/** * @param modeName 模板名稱 * @param targetFileName 生成后的HTML名稱 * @param params 傳入模板的參數 * @Author: zy * @Date: 2020-6-4 09:39:47 * @Description:生成靜態頁面 */ public void createHtmlByMode(String modeName, String targetFileName, Map<String, Object> params) { Writer out = null; // 找到服務器緩存目錄,可以自己指定目錄 String folder = PropertisUtil.getApplicationProperties('healthReport.logs.urls') + targetFileName; // 通過匹配路徑格式拼接完整生成路徑 String outFile = folder; try { File file = new File(outFile); // 生成空HTML文件 if (!file.exists()) {file.createNewFile(); } // 創建模版對象 Template template = cfg.getTemplate(modeName); // 設置輸出流 out = new OutputStreamWriter(new FileOutputStream(file), 'UTF-8');// 設置編碼 UTF-8 // 模版數據插入參數,通過輸出流插入到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'); //生成靜態文件 Map param=new HashMap(); param.put('key', '我是被生成的靜態文件'); createHtmlByMode('test.ftl','test.html',param); return 'test'; }

實現效果(我這里默認保存到d:/testlogs):

JAVA集成Freemarker生成靜態html過程解析

JAVA集成Freemarker生成靜態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='' /><!-- 上面已經配了,這里就不用配啦 --> <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.調用方式

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 学习安徽网| 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 酒瓶_酒杯_玻璃瓶生产厂家_徐州明政玻璃制品有限公司 | 真空冷冻干燥机_国产冻干机_冷冻干燥机_北京四环冻干 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 【同风运车官网】一站式汽车托运服务平台,验车满意再付款 | B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | 低粘度纤维素|混凝土灌浆料|有机硅憎水粉|聚羧酸减水剂-南京斯泰宝 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 九爱图纸|机械CAD图纸下载交流中心| 工控机-图像采集卡-PoE网卡-人工智能-工业主板-深圳朗锐智科 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 柴油机_柴油发电机_厂家_品牌-江苏卡得城仕发动机有限公司 | 成都软件开发_OA|ERP|CRM|管理系统定制开发_成都码邻蜀科技 | 冷水机-工业冷水机-冷水机组-欧科隆品牌保障 | 建筑工程资质合作-工程资质加盟分公司-建筑资质加盟 | 云南丰泰挖掘机修理厂-挖掘机维修,翻新,再制造的大型企业-云南丰泰工程机械维修有限公司 | 定制防伪标签_防伪标签印刷_防伪标签厂家-510品保防伪网 | 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 哈尔滨发电机,黑龙江柴油发电机组-北方星光| 布袋除尘器-单机除尘器-脉冲除尘器-泊头市兴天环保设备有限公司 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 天然气分析仪-液化气二甲醚分析仪|传昊仪器 | 杭州公司变更法人-代理记账收费价格-公司注销代办_杭州福道财务管理咨询有限公司 | 伺服电机维修、驱动器维修「安川|三菱|松下」伺服维修公司-深圳华创益 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 无锡装修装潢公司,口碑好的装饰装修公司-无锡索美装饰设计工程有限公司 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 筛分机|振动筛分机|气流筛分机|筛分机厂家-新乡市大汉振动机械有限公司 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 造价工程师网,考试时间查询,报名入口信息-网站首页 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 顺景erp系统_erp软件_erp软件系统_企业erp管理系统-广东顺景软件科技有限公司 | 潍坊大集网-潍坊信息港-潍坊信息网|