说到Mapping问题。。我就想到了Controller Front模式(请见:http://java.sun.com/blueprints/corej2eepatterns/Patterns/FrontController.html)
所以说呢,Mapping问题主要就是要解决要调用哪一个Action的问题。。
主要有两个Mapping Handler方式:
1. BeanNameUrlHandlerMapping
这个其实也就是默认方式,只要你不要**-servlet.xml中定义其mapping方式的话,Spring会自动选择其方式
它是根据其所定义的Action的ID进行调用:
比如:
<beans>
<bean id=”mapping” class=”org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping”/>
<!-- 定义几个Action bean -->
<bean id=”/addUser.html” class=”org.springframework.web.mvc.SimpleFormController”>
<property .................../>设置其SimpleFormControl的一些属性
</bean>
<bean id=”/logout.html” class=”saoo.MyController”/>
</beans>
所以,它所对应要增加一个新的User的URL就是/addUser.html
而一但用户想登出系统的话,就可以通过URL:/logout.html来实现
2. SimpleUrlHandlerMapping
它是通过原先配置好的一对一对放入到其一个Map mappings的属性里面
比如:
<beans>
<bean id=”mapping” class=”org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping”/>
<!-- 定义几个Action bean -->
<bean id=”/addUser.html” class=”org.springframework.web.mvc.SimpleFormController”>
<property .................../>设置其SimpleFormControl的一些属性
</bean>
<bean id=”/logout.html” class=”saoo.MyController”/>
</beans>
可以改成:
<beans>
<bean id=”mapping” class=”org.springframework.web.servlet.handler.SimpleUrlHandlerMapping”>
<props><!--因为其属性是Map-->
<prop key="/addUser.html">AddUserController</prop><!--因对应的是Action Bean的id-->
<prop key="/logout.html">Logout</prop><!--对应Logout的Action-->
</props>
</bean>
<!-- 定义几个Action bean -->
<bean id=”AddUserController” class=”org.springframework.web.mvc.SimpleFormController”>
<property .................../>设置其SimpleFormControl的一些属性
</bean>
<bean id=”Logout” class=”saoo.MyController”/>
</beans>
过时候再与一些关于Action的东东。。呵呵