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

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

Spring MVC整合FreeMarker的示例

瀏覽:8日期:2023-07-27 13:10:06
什么是Freemarker?

FreeMarker是一個用Java語言編寫的模板引擎,它基于模板來生成文本輸出。FreeMarker與Web容器無關,即在Web運行時,它并不知道Servlet或HTTP。它不僅可以用作表現層的實現技術,而且還可以用于生成XML,JSP或Java 等。 目前企業中:主要用Freemarker做靜態頁面或是頁面展示

一.工程結構

Spring MVC整合FreeMarker的示例

二.web.xml

<?xml version='1.0' encoding='UTF-8'?><web-app version='2.4' xmlns='http://java.sun.com/xml/ns/j2ee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd'> <display-name>SpringMVC</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springMVC-servlet.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping></web-app>三.springMVC-servlet.xml

<?xml version='1.0' encoding='UTF-8'?><beans xmlns='http://www.springframework.org/schema/beans' xmlns:context='http://www.springframework.org/schema/context' xmlns:p='http://www.springframework.org/schema/p' xmlns:mvc='http://www.springframework.org/schema/mvc' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd '> <!-- 自動掃描包 --> <context:component-scan base-package='com.bijian.study.controller'></context:component-scan> <!-- 默認注解映射支持 --> <mvc:annotation-driven></mvc:annotation-driven> <!--JSP視圖解析器--> <bean class='org.springframework.web.servlet.view.InternalResourceViewResolver'> <property name='prefix' value='/WEB-INF/views/'/> <property name='suffix' value='.jsp'/> <property name='viewClass' value='org.springframework.web.servlet.view.InternalResourceView'/> <property name='order' value='1'/> </bean> <!-- 配置freeMarker視圖解析器 --> <bean class='org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver'> <property name='viewClass' value='org.springframework.web.servlet.view.freemarker.FreeMarkerView'/> <property name='contentType' value='text/html; charset=UTF-8'/> <property name='exposeRequestAttributes' value='true' /> <property name='exposeSessionAttributes' value='true' /> <property name='exposeSpringMacroHelpers' value='true' /> <property name='cache' value='true' /> <property name='suffix' value='.ftl' /> <property name='order' value='0'/> </bean> <!-- 配置freeMarker的模板路徑 --> <bean class='org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer'> <property name='templateLoaderPath' value='/WEB-INF/ftl/'/> <property name='freemarkerVariables'> <map><entry key='xml_escape' value-ref='fmXmlEscape' /> </map> </property> <property name='defaultEncoding' value='UTF-8'/> <property name='freemarkerSettings'> <props><prop key='template_update_delay'>3600</prop><prop key='locale'>zh_CN</prop><prop key='datetime_format'>yyyy-MM-dd HH:mm:ss</prop><prop key='date_format'>yyyy-MM-dd</prop><prop key='number_format'>#.##</prop> </props> </property> </bean> <bean /></beans>

在JSP和Freemarker的配置項中都有一個order property,上面例子是把freemarker的order設置為0,jsp為1,意思是找view時,先找ftl文件,再找jsp文件做為視圖。這樣Freemarker視圖解析器就能與JSP視圖解析器并存。

四.FreeMarkerController.java

package com.bijian.study.controller;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import com.alibaba.fastjson.JSON;import com.bijian.study.utils.JsonUtil;import com.bijian.study.vo.User;@Controllerpublic class FreeMarkerController { @RequestMapping('/get/usersInfo') public ModelAndView Add(HttpServletRequest request, HttpServletResponse response) { User user = new User(); user.setUsername('zhangsan'); user.setPassword('1234'); User user2 = new User(); user2.setUsername('lisi'); user2.setPassword('123'); List<User> users = new ArrayList<User>(); users.add(user); users.add(user2); return new ModelAndView('usersInfo', 'users', users); } @RequestMapping('/get/allUsers') public ModelAndView test(HttpServletRequest request, HttpServletResponse response) { List<User> users = new ArrayList<User>(); User u1 = new User(); u1.setUsername('王五'); u1.setPassword('123'); users.add(u1); User u2 = new User(); u2.setUsername('張三'); u2.setPassword('2345'); users.add(u2); User u3 = new User(); u3.setPassword('fgh'); u3.setUsername('李四'); users.add(u3); Map<String, Object> rootMap = new HashMap<String, Object>(); rootMap.put('userList', users); Map<String, String> product = new HashMap<String, String>(); rootMap.put('lastProduct', product); product.put('url', 'http://www.baidu.com'); product.put('name', 'green hose'); String result = JSON.toJSONString(rootMap); Map<String, Object> resultMap = new HashMap<String, Object>(); resultMap = JsonUtil.getMapFromJson(result); return new ModelAndView('allUsers', 'resultMap', resultMap); }}五.JsonUtil.java

package com.bijian.study.utils;import java.util.Map;import com.alibaba.fastjson.JSON;public class JsonUtil { public static Map<String, Object> getMapFromJson(String jsonString) { if (checkStringIsEmpty(jsonString)) { return null; } return JSON.parseObject(jsonString); } /** * 檢查字符串是否為空 * @param str * @return */ private static boolean checkStringIsEmpty(String str) { if (str == null || str.trim().equals('') || str.equalsIgnoreCase('null')) { return true; } return false; }}六.User.java

ackage com.bijian.study.vo;public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}七.usersInfo.ftl

<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'><html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>usersInfo</title></head><body><#list users as user> <div> username : ${user.username}, password : ${user.password} </div></#list></body></html>八.allUsers.ftl

<html> <head> <title>allUsers</title> </head> <body> <#list resultMap.userList as user> Welcome ${user.username}! id:${user.password}<br/> </#list> <p>Our latest product: <a href='http://www.hdgsjgj.cn/bcjs/${resultMap.lastProduct.url}' rel='external nofollow' >${resultMap.lastProduct.name} </a>! </body></html>九.運行效果

Spring MVC整合FreeMarker的示例

Spring MVC整合FreeMarker的示例

再輸入http://localhost:8088/SpringMVC/greeting?name=zhangshan,JSP視圖解析器運行依然正常。

Spring MVC整合FreeMarker的示例

至此,就結束完成整合了!

以上就是Spring MVC整合FreeMarker的示例的詳細內容,更多關于Spring MVC整合FreeMarker的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
主站蜘蛛池模板: 渗透仪-直剪仪-三轴仪|苏州昱创百科 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 探伤仪,漆膜厚度测试仪,轮胎花纹深度尺厂家-淄博创宇电子 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 银川美容培训-美睫美甲培训-彩妆纹绣培训-新娘化妆-学化妆-宁夏倍莱妮职业技能培训学校有限公司 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 新能源汽车教学设备厂家报价[汽车教学设备运营18年]-恒信教具 | 魔方网-培训咨询服务平台| 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 基本型顶空进样器-全自动热脱附解吸仪价格-AutoHS全模式-成都科林分析技术有限公司 | 环氧树脂地坪_防静电地坪漆_环氧地坪漆涂料厂家-地壹涂料地坪漆 环球电气之家-中国专业电气电子产品行业服务网站! | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 广州各区危化证办理_危险化学品经营许可证代办 | 河南档案架,档案密集架,手动密集架,河南密集架批发/报价 | 电伴热系统施工_仪表电伴热保温箱厂家_沃安电伴热管缆工业技术(济南)有限公司 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 拉卡拉POS机官网 - 官方直营POS机办理|在线免费领取 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 甲级防雷检测仪-乙级防雷检测仪厂家-上海胜绪电气有限公司 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 水性绝缘漆_凡立水_绝缘漆树脂_环保绝缘漆-深圳维特利环保材料有限公司 | TPM咨询,精益生产管理,5S,6S现场管理培训_华谋咨询公司 | 防水套管厂家-柔性防水套管-不锈钢|刚性防水套管-天翔管道 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 | 伺服电机_直流伺服_交流伺服_DD马达_拓达官方网站 | 防爆电机_防爆电机型号_河南省南洋防爆电机有限公司 | 2025福建平潭岛旅游攻略|蓝眼泪,景点,住宿攻略-趣平潭网 |