Spring4.x官方参考文档中文版——第21章 Web MVC框架(27)

21.13.3 关于RequestToViewNameTranslator视图

    如果一个View对象的逻辑视图名没有被显式指定,

RequestToViewNameTranslator接口会决定这个View对象的逻辑名。它只有一个实现类,叫DefaultRequestToViewNameTranslator。

    DefaultReuqestToViewNameTranslator会把请求的多个URL映射到指定的逻辑视图名,见下例:

public class RegistrationController implements Controller {

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
        //处理请求...
        ModelAndView mav = new ModelAndView();
        // 添加一些必要的数据到model中...
        return mav;
        //请注意,既没有指定View对象,也没有设定逻辑视图名
	}
}

 

<?xmlversion="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映射到Controller的名字 -->
    <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>
</bean>

        请注意,在handleRequest(..)这个方法中的实现内容,在ModelAndView对象中,没有设定任何View对象或逻辑视图名就返回了。DefaultRequestToViewNameTranslator已经被指定用来从请求的URL中来生成一个逻辑视图名。在上例中的情况下,RegistrationController会与ControllerClassNameHandlerMapping一起合作,利用DefaultRequestToViewNameTranslator把类似http://localhost/registration.html这样的网址看作是请求叫registration的逻辑视图名,然后,这个逻辑视图名将被InternalResourceViewResolver这个bean解析到/WEB-INF/jsp/registration.jsp这个页面。

 

小提示:

    你不必显式定义一个DefaultRequestToViewNameTranslator的bean。如果你喜好这个bean的默认配置,你可以依靠String Web MVC的DispatcherServlet来初始化这个类的实例。

 

         当然,如果你想要改变这个bean的默认配置,你就需要显式的配置自己的DefaultRequestToViewNameTranslator的bean了。请参考DefaultRequestToViewNameTranslaot的文档来了解更多这个bean能被配置的属性。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值