首页 > 代码库 > SSM之旅(二)--换个视图解析器FreeMarker
SSM之旅(二)--换个视图解析器FreeMarker
对于一些不写jsp的同学来说,freemarker是个不错的选择,什么是freeMarker,没错,他是一个动态模板引擎,并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。具体啥的自己是了解。
1、想要引入freemarker,首先你需要引入jar包,毕竟他是一个java类库
<!--freeMarker依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.19</version>
</dependency>
2、与springMVC进行整合,修改servlet-context.xml提供视图解析
<!-- 设置freeMarker的配置文件路径 --> <bean id="freemarkerConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> <property name="location" value=http://www.mamicode.com/"classpath:config/freemarker_static.properties"/> </bean> <!-- 配置freeMarker参数 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="freemarkerSettings" ref="freemarkerConfiguration"/> <property name="templateLoaderPath"><value>/WEB-INF/views/</value></property> </bean> <!-- 配置freeMarker视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="cache" value=http://www.mamicode.com/"true" /> <property name="prefix" value=http://www.mamicode.com/"" /> <property name="suffix" value=http://www.mamicode.com/".ftl" /> <property name="contentType" value=http://www.mamicode.com/"text/html;charset=UTF-8"></property> <property name="requestContextAttribute" value=http://www.mamicode.com/"request" /> <property name="exposeSpringMacroHelpers" value=http://www.mamicode.com/"true" /> <property name="exposeRequestAttributes" value=http://www.mamicode.com/"true" /> <property name="exposeSessionAttributes" value=http://www.mamicode.com/"true" /> <property name="order" value=http://www.mamicode.com/"0" /> </bean> <!-- 配置视图解析器 如何把handler 方法返回值解析为实际的物理视图 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name = "prefix" value=http://www.mamicode.com/"/WEB-INF/views/"></property> <property name = "suffix" value = http://www.mamicode.com/".jsp"></property> <property name="order" value=http://www.mamicode.com/"1" /> </bean>
其实我们可以提供多个视图解析器,并且按照order设置优先级来调用,从小到大。
3、控制器
public class IndexController { @RequestMapping(value = "/index") public ModelAndView indexApi(final Model model){ ModelAndView mv = new ModelAndView(); mv.addObject("name", "this is freemaker test!!!"); return mv; } }
注意,return mv;是返回逻辑视图与数据,如果是直接返回return "index" 那么这只是返回了逻辑视图,需要将数据放入到model中,传入到resquest的域里面进行返回。
freeMarker的作用很多,以后时间进行详解和补充。
这一讲引入了freemarker,好的,我们下一章是如果进行请求响应的类型区别。
SSM之旅(二)--换个视图解析器FreeMarker
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。