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

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

Spring MVC整合FreeMarker的示例

瀏覽:7日期: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
相關文章:
主站蜘蛛池模板: 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 蚂蚁分类信息系统 - PHP同城分类信息系统 - MayiCMS | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 合肥白癜风医院_[治疗白癜风]哪家好_合肥北大白癜风医院 | 千淘酒店差旅平台-中国第一家针对TMC行业的酒店资源供应平台 | 苏州注册公司_苏州代理记账_苏州工商注册_苏州代办公司-恒佳财税 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 塑钢件_塑钢门窗配件_塑钢配件厂家-文安县启泰金属制品有限公司 深圳南财多媒体有限公司介绍 | 碳刷_刷握_集电环_恒压簧_电刷厂家-上海丹臻机电科技有限公司 | 哈尔滨京科脑康神经内科医院-哈尔滨治疗头痛医院-哈尔滨治疗癫痫康复医院 | 硬度计,金相磨抛机_厂家-莱州华煜众信试验仪器有限公司 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 | 钢骨架轻型板_膨石轻型板_钢骨架轻型板价格_恒道新材料 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 专业广州网站建设,微信小程序开发,一物一码和NFC应用开发、物联网、外贸商城、定制系统和APP开发【致茂网络】 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 消防设施操作员考试报名时间,报名入口,报考条件 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | 杭州用友|用友软件|用友财务软件|用友ERP系统--杭州协友软件官网 | 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 涡轮流量计_LWGY智能气体液体电池供电计量表-金湖凯铭仪表有限公司 | 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 南京雕塑制作厂家-不锈钢雕塑制作-玻璃钢雕塑制作-先登雕塑厂 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 氮化镓芯片-碳化硅二极管 - 华燊泰半导体 | 低合金板|安阳低合金板|河南低合金板|高强度板|桥梁板_安阳润兴 北京租车牌|京牌指标租赁|小客车指标出租 | 东莞市踏板石餐饮管理有限公司_正宗桂林米粉_正宗桂林米粉加盟_桂林米粉加盟费-东莞市棒子桂林米粉 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 电梯装饰-北京万达中意电梯装饰有限公司 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 |