springmvc中使用多种视图的办法
一般spring mvc配置jstl做视图。比如:
<
bean
class
="org.springframework.web.servlet.view.InternalResourceViewReso lver"
>
<
property
name
="prefix"
value
="/WEB-INF/mm/jsp/"
/>
<
property
name
="suffix"
value
=".jsp"
/>
</
bean
>
如果使用多种视图,有一种办法是配置多个spring servlet,比如这个链接:
这种办法是根据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.ResourceBundleViewResolv er"
>
<
property
name
="basename"
value
="views"
/>
<
property
name
="order"
value
="0"
/>
</
bean
>
<
bean
class
="org.springframework.web.servlet.view.InternalResourceViewReso lver"
>
<
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
>
上面为ResourceBundleViewResolv
这里使用了ResourceBundleViewResolv
register.(class)
=
org.springframework.web.servlet.view.freemarker.FreeMarkerViewregister.url
=
register.ftl
这里的register,是springmvc返回字符串的名称。url部分,要写freemarkerConfig中设置templateLoaderPath下的文件路径。