spring MVC之将多个动作分组到一个控制器(二)

spring MVC之将多个动作分组到一个控制器(二)

----------

 

接上一篇

 

将URL映射到处理器方法

 

默认情况下,MultiActionController利用InternalPathMethodNameResolver按名称将URL映射到处理程序方法上。然而,如果想要给被映射的方法名称添加前缀或者后缀,就必须显式地配置这个解析器。

<bean id="memberController"
	class="com.apress.springrecipes.court.web.MemberController">
	...
	<property name="methodNameResolver">
		<bean class="org.springframework.web.servlet.mvc.multiaction
			.InternalPathMethodNameResolver">
			<propery name="suffix" value="Member"/>
		</bean>
	</property>
</bean>

然后,URL中扩展名前的最后部分路径将被映射到添加了Member后缀的处理程序方法上。

/member/add.htm --> addMember()
/member/remove.htm --> removeMember()
/member/list.htm --> listMember()

你必须改变MemberController中的方法名称,来测试这个解析器:

package com.apress.springrecipes.court.web;
...
public class MemberController extends MultiActionController{
	...
	public ModelAndView addMember(HttpServletRequest request,
		HttpServletResponse response,Member member)throws Exception{
		...
	}
	public ModelAndView removeMember(HttpServletRequest request,
		HttpServletResponse response)throws Exception{
		...
	}
	public ModelAndView listMember(HttpServletRequest request,
		HttpServletResponse response)throws Exception{
		...
	}
}

 

 

 

 

此外,你也可以配置PropertiesMethodNameResolver,通过显式地指定映射定义,将URL映射到处理程序方法上。

<bean id="memberController"
	class="com.spress.springrecipes.court.web.MemberController">
	...
	<property name="methodNameResolver">
		<bean class="org.springframework.web.servlet.mvc.multiaction
			.PropertiesMethodNameResolver">
			<property name="mappings">
				<props>
					<prop key="/member/add.htm">addMember</prop>
					<prop key="/member/remove.htm">removeMember</prop>
					<prop key="/member/list.htm">listMember</prop>
				</props>
			</property>
		</bean>
	</property>
</bean>

随后,根据映射定义中指定的名称,进行URL到处理程序方法的映射。 

/member/add.htm --> addMember()
/member/remove.htm --> removeMember()
/member?list.htm --> listMember()

 

 

 

最后,可以配置ParameterMethodNameResolver,根据请求参数将URL映射到处理程序方法上,参数名称可以用paramName属性来定制。例如,如果将它设置为method,URL就会被映射到名称与请求参数method的值相同的处理程序方法。请注意,以下URL中的通配符可以与任何字符串相匹配。

/member/*.htm?method=addMember --> addMember()
/member/*.htm?method=removeMember --> removeMember()
/member/*.htm?method=listMember --> listMember()

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值