spring mvc view使用方法示例

spring mvc views

spring mvc 支持多种视图:JSP,XMl,Velocity.

|ViewResolver|Description|
|——————————–|———————————-|
|AbstractCachingViewResolver |需要预先加载,支持缓存,没有使用过|
|XmlViewResolver |支持XML视图 |
|UrlBasedViewResolver |支持URL拼接,重定向支持,redirect and forward|
|InternalResourceViewResolver |支持本地化视图,在本地文件中配置映射关系 |
|VelocityViewResolver / FreeMarkerViewResolver|支持java模版,Velocity/FreeMarker|
|ContentNegotiatingViewResolver |支持根据配置视图的ContentType类型|

使用UrlBasedViewResolver例子(不常用):

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <!--指定解析class-->
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <!--视图存放位置-->
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <!--视图后缀名-->
    <property name="suffix" value=".jsp"/>
</bean>

使用ResourceBundleViewResolver例子:

<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
    <property name="basename" value="views"/>
    <property name="defaultParentView" value="parentView"/>
</bean>

在classpath下面创建views.properties文件,配置每个视图的资源绑定,在classpath下面创建views.properties文件,配置每个视图的资源绑定,放置在/src/main/resources下面

  • “{viewname}“-视图名称
  • “{viewname}“.(class)视图类型
  • “{viewname}“.url视图的url路径

例如view.properties文件内容

welcome.(class)=org.springframework.web.servlet.view.JstlView
welcome.url=/WEB-INF/pages/welcome.jsp

完成配置后,在Controller里面使用vuiewname

InternalResourceViewResolver例子(使用普遍):

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

spring mvc 支持多种视图解析方式

将多个视图view按照所需顺序配置到配置文件中,spring mvc会按照多个配置的视图信息组成的视图链的顺序选择最合适的view来渲染,选择标准按照view所配置解析各种所支持的视图方式,InternalResourceViewResolver可以所有视图,且返回一定不为空,一定将它配置在最后一个。

<bean id="excelViewResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
    <property name="order" value="1"/>
    <property name="location" value="/WEB-INF/views.xml"/>
</bean>
<!-- in views.xml -->
<beans>
    <bean name="report" class="org.springframework.example.ReportExcelView"/>
</beans>
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
</bean>

重定向到视图

spring mvc中支持重定向到视图,使用redirect:urlforword:url

@RequestMapping(value = "/files/{path}", method = RequestMethod.POST)
public String upload(...) {
    // ...
    return "redirect:files/{path}";
}

你可能感兴趣的:(spring mvc view使用方法示例)