Spring MVC ParameterizableViewController示例

通常,要在Spring MVC应用程序中返回视图或页面,您需要创建一个类,该类扩展AbstractController ,并返回ModelAndView()对象。

public class WelcomeController extends AbstractController{
	
	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest request,
		HttpServletResponse response) throws Exception {

		ModelAndView model = new ModelAndView("WelcomePage");
		return model;
		
	}
	
}

在Bean配置文件中,声明一个ControllerClassNameHandlerMapping以自动检测映射。

<bean 
 class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
	 
<bean class="com.mkyong.common.controller.WelcomeController" />

但是,您不认为对于简单的重定向任务而言,配置太多了吗? 幸运的是,Spring带有ParameterizableViewController来简化上述过程。 使用ParameterizableViewController ,您不再需要在控制器类中对视图名称进行硬编码,而是通过ParameterizableViewController的“ viewName ”属性将视图名称声明性地放入。

注意
ParameterizableViewController是AbstractController的子类,并基于“ viewName”属性返回ModelAndView, 它纯粹是一个重定向类 ,仅此而已,🙂

ParameterizableViewController.java

public class ParameterizableViewController extends AbstractController{
//...
protected ModelAndView handleRequestInternal(
    HttpServletRequest request, HttpServletResponse response)
	throws Exception {

	return new ModelAndView(getViewName());
}

讲解

在本教程中,它展示了如何使用ParameterizableViewController控制器在Spring MVC应用程序中进行页面重定向。

1. ParameterizableViewController

不需要控制器类,只需声明ParameterizableViewController bean并通过“ viewName ”属性指定视图名称即可。 此外,您必须为其定义一个明确的映射。

<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-2.5.xsd">

    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/welcome.htm">welcomeController</prop>
            </props>
        </property>
    </bean>
	
   <bean name="welcomeController" 
            class="org.springframework.web.servlet.mvc.ParameterizableViewController">
	    <property name="viewName" value="WelcomePage" />
   </bean>
 
   <bean id="viewResolver"
	    class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
            <property name="prefix">
              <value>/WEB-INF/pages/</value>
            </property>
            <property name="suffix">
              <value>.jsp</value>
            </property>
    </bean>

</beans>
定义一个明确的映射是必需的。
<beans ...>
//...
<bean 
class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />
	
<bean name="welcomeController" 
    class="org.springframework.web.servlet.mvc.ParameterizableViewController">
	<property name="viewName" value="WelcomePage" />
</bean>
//...
</beans>

在上面的代码片段中,您是否希望视图名称“ welcome”将返回“ WelcomePage”? 抱歉,不是,您必须定义一个显式映射 ,因为ControllerClassNameHandlerMapping不会为任何内置的Spring MVC控制器生成映射。

2.查看

只是一个显示标题行的简单JSP。

WelcomePage.jsp.jsp

<html>
<body>
<h2>ParameterizableViewController Example</h2>
</body>
</html>

3.演示

通过“ http:// localhost:8080 / SpringMVC / welcome.htm ”访问它,“ welcome.htm ”将返回“ /WEB-INF/pages/WelcomPage.jsp ”。

SpringMVC-ParameterizableViewController-Example-1

下载源代码

下载它– SpringMVC-ParameterizableViewController-Example.zip (7KB)

参考

  1. ParameterizableViewController文档
  2. Spring MVC SimpleUrlHandlerMapping示例

翻译自: https://mkyong.com/spring-mvc/spring-mvc-parameterizableviewcontroller-example/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值