spring mvc中使用多种视图的办法

来源:互联网 发布:淘宝小号产号技术 编辑:程序博客网 时间:2024/05/22 18:10

springmvc中使用多种视图的办法

一般spring mvc配置jstl做视图。比如:

 

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/mm/jsp/" /> <property name="suffix" value=".jsp" /></bean>

如果使用多种视图,有一种办法是配置多个spring servlet,比如这个链接:

http://www.javaeye.com/topic/32447

这种办法是根据url后缀,选择使用不同的spring servlet。spring mvc也支持视图链,在一个springservlet中,spring mvc可逐个选择视图。比如我需要支持freemarker视图和jsp/jstl视图,springmvc可先查找是否有freemarker视图,如没有再查找jsp/jstl视图。

以下是freemarker和jsp/jstl多视图配置文件:

 

<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"><property name="basename" value="views" /> <property name="order" value="0" /></bean> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/mm/jsp/" /> <property name="suffix" value=".jsp" /></bean> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"><property name="templateLoaderPath"> <value>/WEB-INF/mm/freemarker/</value> </property></bean>

上面为ResourceBundleViewResolver设置了order属性,用于定义顺序,在jsp处理之前。

这里使用了ResourceBundleViewResolver,还需要有它的配置文件,这里配置的名称是views.properties,需要把它放置在classpath的根下。

 

register.(class)=org.springframework.web.servlet.view.freemarker.FreeMarkerViewregister.url=register.ftl

这里的register,是springmvc返回字符串的名称。url部分,要写freemarkerConfig中设置templateLoaderPath下的文件路径。