`

SpringMVC学习笔记(二) --- 后端控制器之ParameterizableViewController、UrlFilenameViewControll

 
阅读更多

1、ParameterizableViewController 创建带有参数化视图的控制器

   

   在创建控制器时, 你不想将视图名称硬编码在控制器中,而是把它参数化, 以便在Bean配置文件中进行指定。ParameterizableViewControllerAbstractController的一个子类,其中定义了viewName属性及其gettersetter方法。对于不需要任何处理逻辑,只为用户呈现视图控制器,可以直接使用这个控制器类,或者扩展这个控制器类来继承viewName属性。

 

   假设有一个非常简单的控制器,其目的只是为了呈现hello视图。可以声明一个ParameterizableViewController类型的控制器,并指定viewName属性为hello

 

<!-- 页面直接跳转 -->
	<!-- 
		class指定为ParameterizableViewController,可以进行页面直接跳转,跳转目的视图名  
		为viewName属性的value值,如下就表示分发器转发给这个bean时,跳转到页面hello去  
	-->
	<bean name="/parameterizableViewController.do"
		class="org.springframework.web.servlet.mvc.ParameterizableViewController">
		<property name="viewName" value="hello" />
	</bean>
	
	<!-- 视图解析器策略 -->
	<!-- 视图解析器 -->
	<bean id="internalResourceViewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.InternalResourceView" />
		<property name="prefix" value="/WEB-INF/page/" />
		<property name="suffix" value=".jsp" />
	</bean>

 

 

2、UrlFilenameViewController 

 

  从请求的路径中获得逻辑视图名称,比上一种配置还要简单。

  这两种控制器很适合 不需要任何处理逻辑,只是单纯的页面跳转。   

 

<bean name="/hello.do"
		class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />
	<!-- 视图解析器策略 -->
	<bean id="internalResourceViewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 视图解析器 -->
		<property name="viewClass"
			value="org.springframework.web.servlet.view.InternalResourceView" />
		<property name="prefix" value="/WEB-INF/page/" />
		<property name="suffix" value=".jsp" />
	</bean>

 

 上面的配置中并没有使用handlerMapping,但是controller中配置的是name而不是id。

 如果想使用handlerMapping将name更改成id并添加相应的handlerMapping。

 

 

 

 

分享到:
评论
1 楼 飞行的小羊 2014-01-15  
使用ParameterizableViewController在构造ModelAndView对象时,需要一个参数getViewName

相关推荐

Global site tag (gtag.js) - Google Analytics