FreeMarker整合Spring mvc
2015-12-26 11:55
465 查看
FreeMarker整合Spring3
开发环境:System:Windows
WebBrowser:IE6+、Firefox3+
JavaEEServer:tomcat5.0.2.8、tomcat6
IDE:eclipse、MyEclipse8
开发依赖库:
JavaEE5、Spring3.0.0.M4、FreeMarker2.3.16
Email:hoojo_@126.com
Blog:
1、新建WebProject,工程名称是SpringFreemarker;然后手动添加jar包,需要的jar包如下:
SpringFrameworkjar包下载地址:
FreeMarkerlibrary下载地址:
当然你也可以去官方下载
2、在web.xml中添加如下配置:
<!--加载Spring容器配置-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--设置Spring容器加载配置文件路径-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
上面分别是添加Spring的监听器、以及配置Spring的配置文件、还有SpringMVC的控制器;
3、在WEB-INF中添加文件dispatcher.xml,和web.xml中的对应。内容如下:
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans>
'target='_blank'>http://www.springframework.org/schema/beans/spring-beans-3.0.xsd[/code] 'target='_blank'>http://www.springframework.org/schema/mvc[/code] 'target='_blank'>http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd[/code] http://www.springframework.org/schema/context 'target='_blank'>http://www.springframework.org/schema/context/spring-context-3.0.xsd[/code] 'target='_blank'>http://www.springframework.org/schema/util[/code] 'target='_blank'>http://www.springframework.org/schema/util/spring-util-3.0.xsd"[/code] <context:component-scanbase-package="com.hoo"/><!--annotation的方法映射适配器<beanid="handlerAdapter"class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>--><!--annotation默认的方法映射适配器--><beanid="handlerMapping"class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="viewClass"value="org.springframework.web.servlet.view.JstlView"/></bean></beans>
上面是SpringMVC的基本配置
4、在src中添加applicationContext-beans.xml,内容如下:<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:util="http://www.springframework.org/schema/util"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans>'target='_blank'>http://www.springframework.org/schema/beans/spring-beans-3.0.xsd[/code] http://www.springframework.org/schema/aop 'target='_blank'>http://www.springframework.org/schema/aop/spring-aop-3.0.xsd[/code] http://www.springframework.org/schema/tx 'target='_blank'>http://www.springframework.org/schema/tx/spring-tx-3.0.xsd[/code] http://www.springframework.org/schema/util 'target='_blank'>http://www.springframework.org/schema/util/spring-util-3.0.xsd[/code] http://www.springframework.org/schema/context 'target='_blank'>http://www.springframework.org/schema/context/spring-context-3.0.xsd"[/code] </beans>
里面可以添加一些bean的配置
5、在src目录添加freemarker.properties配置文件,这个文件是freemarker一些常用的转换,内容如下:tag_syntax=auto_detecttemplate_update_delay=2default_encoding=UTF-8output_encoding=UTF-8locale=zh_CNdate_format=yyyy-MM-ddtime_format=HH:mm:ssdatetime_format=yyyy-MM-ddHH:mm:ss
6、在dispatcher.xml中添加freemarker的配置,配置如下:<!--设置freeMarker的配置文件路径--><beanid="freemarkerConfiguration"class="org.springframework.beans.factory.config.PropertiesFactoryBean"><propertyname="location"value="classpath:freemarker.properties"/></bean><!--配置freeMarker的模板路径--><beanid="freemarkerConfig"class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"><!--propertyname="freemarkerSettings"ref="freemarkerConfiguration"/--><propertyname="templateLoaderPath"><value>/WEB-INF/ftl/</value></property><propertyname="freemarkerVariables"><map><entrykey="xml_escape"value-ref="fmXmlEscape"/></map></property></bean><beanid="fmXmlEscape"class="freemarker.template.utility.XmlEscape"/><!--配置freeMarker视图解析器--><beanid="viewResolver"class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"><propertyname="viewClass"value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/><propertyname="viewNames"value="*.ftl"/><propertyname="contentType"value="text/html;charset=utf-8"/><propertyname="cache"value="true"/><propertyname="prefix"value=""/><propertyname="suffix"value=""/><propertyname="order"value="2"/></bean>
上面最关键的就是freeMarker的视图解析器viewResolver的配置,viewClass是使用哪个视图解析器,这里是类路径;其他的和jsp的视图解析器都很类似。
7、下面在WEB-INF中添加2个ftl模板,在WEB-INF添加ftl,然后添加hello.ftl/hi.ftl,内容分别是:
hello.ftl<html><body><h1>sayhello${name}</h1><br/>${(1==1)?string("yes","no")}</body></html>
hi.ftl<html><body><h1>sayhello${name}</h1><br/>${(1!=1)?string("yes","no")}</body></html>
8、添加Controller控制器,代码如下:packagecom.hoo.controller;importorg.springframework.stereotype.Controller;importorg.springframework.ui.ModelMap;importorg.springframework.web.bind.annotation.RequestMapping;/***<b>function:</b>FreeMarker示例控制器*@authorhoojo*@createDate2011-3-3下午04:50:10*@fileHelloWorldController.java*@packagecom.hoo.controller*@projectSpringFreemarker*@version1.0*/@Controller@RequestMapping("/freeMarker")publicclassHelloWorldController{@RequestMapping("/hello")publicStringsayHello(ModelMapmap){System.out.println("sayHello……");map.addAttribute("name","World!");return"/hello.ftl";}@RequestMapping("/hi")publicStringsayHi(ModelMapmap){System.out.println("sayhi……");map.put("name","jojo");return"/hi.ftl";}@RequestMapping("/jsp")publicStringjspRequest(ModelMapmap){System.out.println("jspRequest……");map.put("name","jsp");return"/temp.jsp";}}
9、添加index.jsp的测试链接或temp.jsp的内容:
index.jsp<body><ahref="freeMarker/hello.do">sayhello</a><br/><ahref="freeMarker/hi.do">sayhi</a><br/><ahref="freeMarker/jsp.do">jspRequest</a></body>
temp.jsp<body><h3>${name}</h3></body>
如果运行无错误,并输出正确的结果就整合成功!~.~
相关文章推荐
- java基础02
- Struts2——No result defined for action and result input - action错误
- 深入理解Java内部类
- Java动态加载类在功能模块开发中的作用
- java 死锁产生原因及解锁
- 使用mybatis +spring 插件实现读写分离
- SpringMVC 流程控制(二)
- Spring mvc 统一异常处理和静态文件的配置
- [Maven] - 安装与Eclipse搭建
- 在Java中怎样逐行地写文件?
- spring线程池ThreadPoolExecutor配置并且得到任务执行的结果
- JavaIO流分析总结
- Eclipse中配置ServiceMix的远程调试模式
- 个人学习-java-数据类型
- JAVA基础01
- Myeclipse报PermGen space异常的问题
- 心形图
- Java&Xml教程(七)使用JDOM修改XML文件内容
- Java&Xml教程(七)使用JDOM修改XML文件内容
- Java&Xml教程(七)使用JDOM修改XML文件内容