18.13.3View - RequestToViewNameTranslator

RequestToViewNameTranslator接口在没有明确提供这样的逻辑View名称时确定一个逻辑视图名称。 它只有一个实现,即DefaultRequestToViewNameTranslator类。

DefaultRequestToViewNameTranslator将请求URL映射到逻辑视图名称,如下例所示:

public class RegistrationController implements Controller {

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
        // 处理请求...
        ModelAndView mav = new ModelAndView();
        // 根据需要添加数据到模型...
        return mav;
        // 注意没有设置View或逻辑视图名称
    }

}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 这个具有众所周知的名称的bean为我们生成视图名称 -->
    <bean id="viewNameTranslator"
            class="org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator"/>

    <bean class="x.y.RegistrationController">
        <!-- 根据需要注入依赖项 -->
    </bean>

    <!-- 将请求URL映射到控制器名称 -->
    <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>

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

请注意,在handleRequest(..)方法的实现中,返回的ModelAndView中没有设置View或逻辑视图名称。 DefaultRequestToViewNameTranslator的任务是从请求的URL生成逻辑视图名称。 在与ControllerClassNameHandlerMapping一起使用的上述RegistrationController的情况下,http://localhost/registration.html的请求URL导致由DefaultRequestToViewNameTranslator生成的注册的逻辑视图名称。 这个逻辑视图名称然后被InternalResourceViewResolverbean解析到/WEB-INF/jsp/registration.jsp视图中。

您不需要明确定义DefaultRequestToViewNameTranslator bean。 如果你喜欢DefaultRequestToViewNameTranslator的默认设置,你可以依靠Spring Web MVC DispatcherServlet实例化这个类的实例(如果没有明确配置的话)。.

当然,如果您需要更改默认设置,则需要明确配置您自己的DefaultRequestToViewNameTranslator bean。 请查阅全面的DefaultRequestToViewNameTranslator javadocs,了解有关可配置的各种属性的详细信息。

results matching ""

    No results matching ""