Elim的博客

用来记录一些原创性的总结


Elim

直接指定路径对应的视图名称

在使用SpringMVC开发Web应用时会存在一些没有业务逻辑,只需要直接展示对应的页面的请求。对于这些请求我们可以不定义Controller处理方法,直接建立请求路径和视图的对应关系。在使用基于XML的SpringMVC配置时可以通过mvc namespace提供的view-controller来指定请求路径和视图的对应关系。下面的代码中就指定了当请求路径是/时将直接响应名为index的视图。如果有需要还可以通过status-code属性指定需要响应的Http状态码。

<mvc:view-controller path="/" view-name="index"/>

如果是使用基于Java配置的SpringMVC,则可以通过实现WebMvcConfigureraddViewControllers定义请求路径直接对应的响应视图。

直接指定请求路径对应的重定向路径

当视图名称是以redirect:前缀开始时会自动转换为一个RedirectView对象用以进行页面的重定向。所以如果需要直接指定一个路径对应的重定向路径时也可以通过<mvc:view-controller/>来进行,比如需要在请求/hello时自动重定向到/world可以进行如下定义:

<mvc:view-controller path="/hello" view-name="redirect:/world"/>

基于这种需求SpringMVC也特意为我们提供了<mvc:redirect-view-controller/>直接定义请求路径与重定向路径的对应关系。所以上面的需求可以重写为如下这样:

<mvc:redirect-view-controller redirect-url="/world" path="/hello"/>

直接指定请求路径对应的状态码

如果我们在处理某一个请求时只需要响应一个状态码,则可以直接通过<mvc:status-controller/>来定义。下面的示例定义了当请求/bad_request时会直接响应Http状态码400。

<mvc:status-controller status-code="400" path="/bad_request"/>

直接指定请求路径对应的重定向路径或者是对应的状态码在基于Java类的配置时也都是通过WebMvcConfigureraddViewControllers定义的。

(注:本文是基于Spring4.1.0所写)