当前位置: 代码迷 >> Java Web开发 >> 提取Action中name有关问题
  详细解决方案

提取Action中name有关问题

热度:8127   发布时间:2013-02-25 21:18:25.0
提取Action中name问题
现在要从struts2配置文件中提取出全部的action name,什么方法比较好啊。最好给个示例看看 。谢谢了。
<aciton name="test" class="..."> 提出去test

------解决方案--------------------------------------------------------
据我了解,好像没有吧。。如果有。。有大虾看到 指点指点
------解决方案--------------------------------------------------------
如果找不到干脆自己提取算了
------解决方案--------------------------------------------------------
自己写一个类,操作配置action的文件,然后获取action就可以了。说白了就是一个读取和处理文件的类。
------解决方案--------------------------------------------------------
输入流读取一下就可以了啊
Java code
//通过输入流读入struts.xml文件得到内容字符串sbString 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手动写进去
  相关解决方案