您的位置:首页 > 编程语言 > Java开发

SpringMVC 2:非注解常见HandlerMapping和Controller

2015-10-24 21:41 531 查看

 

 

 

 

 

BeanNameUrlHandlerMapping:

这是默认的处理方式,controller配置的name属性为url

<bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<bean name="/spring.do" class="controller.SpringController"></bean>

 

SimpleUrlHandlerMapping:

这种方式controller的<bean>中需要id属性,在配置是通过<props>可以把多个url映射到同一controller上,访问http://127.0.0.1:8080/SprintMVC/mvc2.do或者mvc1都可以放访问

<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/mvc1.do">spring</prop>
<prop key="/mvc2.do">spring </prop>
<prop key="/mvc3.do"> spring</prop>
</props>
</property>
</bean>
<bean id="spring" class="controller.SpringController"></bean>

 

ControllerClassNameHandlerMapping:

根据类名称进行截取,删除Controller后缀,将前面的名字转为小写SpringController转换后为spring,该配置的后,访问的url为http://127.0.0.1:8080/SprintMVC/spring.do

<bean id="controllerClassNameHandlerMapping" class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
<bean class="controller.SpringController"></bean

 

如果多个HandlerMapping都配置时,会从上到下执行,也可以设置Mapping的优先级,使用order属性,让其从下而上执行

 

<bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
<property name="order" value="3"></property>
</bean>
<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/mvc1.do">spring</prop>
<prop key="/mvc2.do">spring </prop>
<prop key="/mvc3.do"> spring</prop>
</props>
</property>
<property name="order" value="2"></property>
</bean>
<bean id="controllerClassNameHandlerMapping" class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="order" value="1"></property>
</bean>
 

 

 

 

 

 

AbstractCommandController:

在构造方法里绑定实体类,url访问时携带参数http://127.0.0.1:8080/SprintMVC/command.do?id=1&age=15&name=zhangsan

public class CommandController extends AbstractCommandController {

@SuppressWarnings("deprecation")
public CommandController() {
//绑定实体类
super.setCommandClass(Person.class);
super.setCommandName("person");
}

@Override
protected ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception {
Person p = (Person) command;
System.out.println(p);
return null;
}
}
 为了方便,Mapping都配置为ControllerClassNameHandlerMapping
<bean id="controllerClassNameHandlerMapping" class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
</bean>
<bean id="command" class="controller.CommandController"></bean>
 

 SimpleFormController:

跟对get和post请求处理方式不同



 只有post提交,才会进入doSubmitAction()中

public class FormController extends SimpleFormController {
public FormController() {
this.setCommandClass(Person.class);
this.setCommandName("person");
}

protected void doSubmitAction(Object command) throws Exception {
Person p = (Person) command;
System.out.println(p);
}
}

 配置

<bean id="simpleForm" class="controller.FormController">
<property name="formView" value="person"></property>
<property name="successView" value="springMVC"></property>
</bean>

 

 

WizardFormController:

多个页面,和分页类似

 

 

 

 

 

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: