Spring MVC: step by step 5-BeanNameUrlHandlerMapping(我的最爱)

来源:互联网 发布:网络专题的类型有哪些 编辑:程序博客网 时间:2024/04/29 03:53

BeanNameUrlHandlerMapping将request url 与bean name直接关联起来。我们就可以在url中直接写上controller的名字,管理起来非常便捷,就像struts,webwork的action一样。

 

Admin-servlet.xml

 

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    <bean id="paraResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
        <property name="paramName">
            <value>method</value>
        </property>
        <property name="defaultMethodName">
            <value>getDefaultView</value>
        </property>
    </bean>
    <bean name="/helloParaController.form" id="helloParaController.form" class="multimvc.HelloParaMutiController"  >
        <property name="methodNameResolver" ref="paraResolver" />
</bean>
 
       
    <bean id="viewResolver"    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
          <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/>
        <property name="suffix" value=".jsp"/>
    </bean>

 

请求:

 <form name="hello"  id="hello" action="/SpringBeanName/helloParaController.form?method=goFirst" method="post">
form的请求被分配给HelloParaMutiController.goFirst方法。

 

public class HelloParaMutiController extends MultiActionController {

。。。。

public ModelAndView goFirst(HttpServletRequest request,
            HttpServletResponse response) {
         
        ModelAndView mav = new ModelAndView();
        mav.setViewName("mutipage/first");
        mav.addObject("message", "Hello World!");
        return mav;
    }

。。。。

}