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

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

Spring MVC整合FreeMarker的示例

瀏覽:2日期: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
相關文章:
主站蜘蛛池模板: 南京泽朗生物科技有限公司| 氢氧化钙设备, 氢氧化钙生产线-淄博惠琛工贸有限公司 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 中央空调温控器_风机盘管温控器_智能_液晶_三速开关面板-中央空调温控器厂家 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 常州翔天实验仪器厂-恒温振荡器-台式恒温振荡器-微量血液离心机 恒温恒湿箱(药品/保健品/食品/半导体/细菌)-兰贝石(北京)科技有限公司 | 分轨 | 上传文件,即刻分离人声和伴奏 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 山东齐鲁漆业有限公司【官网】-工业漆专业生产厂家 | 软启动器-上海能曼电气有限公司| 特种电缆厂家-硅橡胶耐高温电缆-耐低温补偿导线-安徽万邦特种电缆有限公司 | 液氮罐(生物液氮罐)百科-无锡爱思科| 汽车水泵_汽车水泵厂家-瑞安市骏迪汽车配件有限公司 | 蜗轮丝杆升降机-螺旋升降机-丝杠升降机厂家-润驰传动 | 软文发布-新闻发布推广平台-代写文章-网络广告营销-自助发稿公司媒介星 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 北京网站建设-企业网站建设-建站公司-做网站-北京良言多米网络公司 | 定制液氮罐_小型气相液氮罐_自增压液氮罐_班德液氮罐厂家 | 粒米特测控技术(上海)有限公司-测功机_减速机测试台_电机测试台 | 仓储笼_金属箱租赁_循环包装_铁网箱_蝴蝶笼租赁_酷龙仓储笼租赁 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 芜湖厨房设备_芜湖商用厨具_芜湖厨具设备-芜湖鑫环厨具有限公司 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 全国冰箱|空调|洗衣机|热水器|燃气灶维修服务平台-百修家电 | 碳刷_刷握_集电环_恒压簧_电刷厂家-上海丹臻机电科技有限公司 | 杭州成人高考_浙江省成人高考网上报名 | ge超声波测厚仪-电动涂膜机-电动划格仪-上海洪富 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 冷却塔风机厂家_静音冷却塔风机_冷却塔电机维修更换维修-广东特菱节能空调设备有限公司 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | 常州律师事务所_常州律所_常州律师-江苏乐天律师事务所 | 成都软件开发_OA|ERP|CRM|管理系统定制开发_成都码邻蜀科技 | 印刷人才网 印刷、包装、造纸,中国80%的印刷企业人才招聘选印刷人才网! | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 |