代码清单12:DefaultActionMapper.getMapping()方法

public ActionMapping getMapping(HttpServletRequest request, ConfigurationManager configManager)

{

ActionMapping mapping = new ActionMapping();

String uri = getUri(request);//得到请求路径的URI,如:testAction.action或testAction!method

uri= dropExtension(uri);//删除扩展名,默认扩展名为action,在代码中的定义是List extensions = new ArrayList(){{add("action");}};

if(uri== null){

return null;

}

parseNameAndNamespace(uri,mapping,configManager);//从uri变量中解析出Action的name和namespace

handleSpecialParameters(request,mapping);//将请求参数中的重复项去掉

//如果Action的name没有解析出来,直接返回

if(mapping.getName() == null){

return null;

}

//下面处理形如testAction!method格式的请求路径

if(allowDynamicMethoCalls)

//handle "name!method" convention

String name = mapping .getName();

int exclamation - name.lastIndexOf("!");//!是Action名称和方法名的分隔符

if(exclamation!=-1)

{

mapping.setName(name.substring(0,exclamation));//提取左边为name

mapping.setMethod(name.substring(exclamation+1));

}

return mapping;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值