SpringMVC系列之一、集成JSP
SpringMVC系列之二、集成FreeMarker
SpringMVC系列之三、集成Log4j
和
SpringMVC系列之一、集成JSP类似,改动的地方:
1. 在pom.xml文件中添加FreeMarker依赖:
<properties>
<freemarker.version>2.3.19</freemarker.version>
</properties>
<dependencies>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
</dependencies>
2. web.xml文件,SpringMVC配置文件改为mvc-ftl.xml:
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/mvc-ftl.xml</param-value>
</init-param>
mvc-ftl.xml,
①. 使用SpringMVC自带的FreeMarker视图解析器FreeMarkerViewResolver
②. 有且只有一个FreeMarkerConfig的bean定义,否则会抛异常。在SpringMVC中,FreeMarkerConfig的实现是FreeMarkerConfigurer
③. 和JSP在prefix属性中指定文件存放路径不同,FreeMarker在templateLoaderPaths属性中指定。
<!-- FreeMarker view resolver -->
<bean id="viewResolverFtl" 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="prefix" value="he" />
<property name="cache" value="false"/>
<property name="viewNames">
<array>
<value>*.ftl</value>
</array>
</property>
<!--<property name="suffix" value=".ftl"/>-->
<property name="order" value="0"/><!-- 优先级,数值越小优先级越高 -->
</bean>
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPaths">
<list>
<value>/WEB-INF/ftl/</value><!-- 模板加载路径 -->
</list>
</property>
</bean>
<bean name="/ftl.htm" class="com.john.chapter5.web.controller.WithFtlController" />
3. WithFtlController类
public class WithFtlController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView mv = new ModelAndView("llo.ftl");
mv.addObject("msg", "Hello Freemarker!");
return mv;
}
}
4. 在/WEB-INF/ftl目录下新建hello.ftl文件
<html>
<head>
<title>Freemarker</title>
</head>
<body>
${msg}
</body>
</html>
5. 运行/调试工程,请求http://localhost:8080/chapter5/ftl.htm,页面输出:
Hello Freemarker!
附:
在FreeMarkerViewResolver的buildView方法中,组装视图的URL:
protected AbstractUrlBasedView buildView(String viewName) throws Exception {
AbstractUrlBasedView view = (AbstractUrlBasedView) BeanUtils.instantiateClass(getViewClass());
view.setUrl(getPrefix() + viewName + getSuffix()); // he + llo.ftl + "" => hello.ftl
String contentType = getContentType();
if (contentType != null) {
view.setContentType(contentType);
}
view.setRequestContextAttribute(getRequestContextAttribute());
view.setAttributesMap(getAttributesMap());
if (this.exposePathVariables != null) {
view.setExposePathVariables(exposePathVariables);
}
return view;
}
- 大小: 12.5 KB
分享到:
相关推荐
此项目是maven2的项目,然后集成了springmvc框架,spring3框架,ibatis框架,freemarker和EasyUI。是我做好的,可以运行的项目,可以作为学习的参考资料或代码。
maven管理项目+springmvc+spring+hibernate+freemarker 集成框架。其中注解格式清晰,hibernate进行了代码封装,对开发效率有了提高,对异常进行了封装。freemarker也有优化,参考common包下。对日期工具类有各种...
基础框架,可满足开发需要
dubbo+zookeeper+SpringMVC+Spring+Mybatis+Freemarker集成
说明:参考了公司的一些项目以及springside,集成了一些常用框架,特色功能如下: shiro: 1.支持shiro数据库配置权限。 2.支持在方法级别上控制权限。 quartz: 1.页面配置Trigger以及选择Job任务来开启定时器。 2...
基于springmvc、hibernate、Mybatis和freemarker 的完整web体统架构 数据持久层采用了hibernate和Mybatis技术集成。hibernate保存、修改方面优势明显,Mybatis查询方面更加优秀灵活。 只需要写Service、action等其他...
Maven2项目集成springmvc,spring3,ibatis和freemarker实例,开发的一个简单的实力,集成这些技术,导入到eclipse就能用。
集成上面三大框架, 里面有解析Ibatis的简单用法。
Spring3.0+Hibernate4.0+SpringMVC整合ExtJS4是一个集成的应用系统,希望对学习javaweb和extjs的朋友有帮助
springmvc4.3.3和mybatis3.4.1集成最新全部jar包,还包含了其他一些常用的jar包,很全,已经在项目中验证过。 lib/antlr-2.7.2.jar lib/aopalliance-1.0.jar lib/asm-3.3.1.jar lib/aspectjweaver-1.6.5.jar ...
GS Spring MVC + Mybatis + Freemarker集成
本人提供这个Shiro + SpringMvc + Mybatis + Redis 的Demo 本着学习的态度,如果有欠缺和不足的地方,给予指正,并且多多包涵。 “去其糟粕取其精华”。如果觉得写的好的地方就给个赞,写的不好的地方,也请多多包涵...
redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 ...
该项目集成了SpringBoot、SpringMVC、MyBaits、Bootstrap3、Druid和Freemarker等多个框架。系统提供了完整的用户界面(UI)、增删改查(CRUD)及分页功能,同时具备防SQL注入和XSS攻击拦截等安全特性。通过该项目,...
包含框架有:SpringBoot、SpringMVC、MyBaits、Bootstrap3、Druid、Freemarker; 集成示例有:增删改查及分页;防XSS、SQL注入; 数据库配置 默认是连接MySQL数据库,支持多数据源,分别连接的db1,db2 ,在项目工程的...
springboot集成spring mvc,mybatis的一个工程demo。maven工程。前端使用freemarker模板。数据库使用mysql。例子要跑起来了,可以添加下面数据库表结构: DROP TABLE IF EXISTS `sys_user`; CREATE TABLE `sys_...
首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串和文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级...
redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 ...
springMvc4.3+spring4.3+mybatis3.4+shiro1.4+log4j2+freemarker2.3+shiro-redis2.9