日期:2014-05-17  浏览次数:20725 次

提取Action中name问题
现在要从struts2配置文件中提取出全部的action name,什么方法比较好啊。最好给个示例看看 。谢谢了。
<aciton name="test" class="..."> 提出去test

------解决方案--------------------
据我了解,好像没有吧。。如果有。。有大虾看到 指点指点
------解决方案--------------------
如果找不到干脆自己提取算了
------解决方案--------------------
自己写一个类,操作配置action的文件,然后获取action就可以了。说白了就是一个读取和处理文件的类。
------解决方案--------------------
输入流读取一下就可以了啊
Java code

//通过输入流读入struts.xml文件得到内容字符串sb
String str = ""//
//然后用正则提取
Matcher matcher  = Pattern.compile("<aciton name=\"(.+?)\").matcher(str);
while(matcher.find())
 sysout(matcher.group(1));

------解决方案--------------------
或者用sax解析 ,也很方便啊。
------解决方案--------------------
楼上的方法是可以的 操作文件流用正则表达式进行匹配

不过这个正则表达式 等牛人给你写吧 要全文检索 然后用数组或list存起来
------解决方案--------------------
xml解析挺好 不要写正则了
------解决方案--------------------
Java code
Dispatcher dispatcher = Dispatcher.getInstance();   
        ConfigurationManager configurationManager = dispatcher.getConfigurationManager();   
        Configuration config = configurationManager.getConfiguration();   
        RuntimeConfiguration runtime  =  config.getRuntimeConfiguration();   
        Map<String,Map<String,ActionConfig>> actionInfo = runtime.getActionConfigs();

------解决方案--------------------
这很简单啊

你有两种办法
第一:如果你配置的action的name用了通配符的话,接下来只需要在里面配置一个<param name=""></param>,进入action类以后就可以取到这个参数

第二:你没有用通配符,那么你每配置一个action都要加上同上的参数,然后把你实际的actionName手动写进去