struts2 config--browser插件改造

[size=medium] [b]config--browser插件提供了很不错的功能,当我们用注解的时候,这个功能就显得很重要,查找路径和对应的类与方法能解决非xml的好处

但当我们项目越来越大,一个namespace下面有好多actionName,这些actionName甚至还相近,本身的查找方式已经无法满足,看看源码,改造一把
想要的结果:每次直接输入全部路径,然后提交
1.给出对应的action全名称--包名+类名
2.给出对应调用的方法
ps:项目中用到了urlRewriter就不行了[/b][/size]

public class ShowAction extends ActionSupport{
private static final long serialVersionUID = 1L;

private String url;

protected ConfigurationHelper configHelper;

private ActionConfig actionConfig;

@Inject
public void setConfigurationHelper(ConfigurationHelper cfg) {
this.configHelper = cfg;
}

public void setUrl(String url) {
this.url = url;
}

@Override
public String execute() throws Exception {
if(!StringUtils.isEmpty(url)){
processUrl();
}
return "show";
}

public ActionConfig getActionConfig() {
return actionConfig;
}
private void processUrl(){
//获取项目的根路径
HttpServletRequest request=ServletActionContext.getRequest();
String baseUrl=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
//过滤掉传值路径
int start=baseUrl.length();
String path=url.substring(start);
//取出namespaces actionName
int end=path.lastIndexOf(".");
String endStr=path.substring(0,end);
String actionName=endStr.substring(endStr.lastIndexOf("/")+1,endStr.length());
String namespace=endStr.substring(0,endStr.lastIndexOf("/"));
actionConfig=configHelper.getActionConfig(namespace, actionName);
}

}

对应jsp页面只需要去除ationConfig
[quote]
<%@ page contentType="text/html; charset=utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
${actionMessages[0]}
${actionErrors[1]}
<form action="../show/show.action">

<input type="text" name="url"/>
<input type="submit" value="查询">
</form>
${url}查询结果如下:
className-- ${actionConfig.className}<br/>
methodName-- ${actionConfig.methodName}<br/>
</body>
</html>
[/quote]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值