你能在struts-config.xml中使用正则表达式吗?

时间:2011-02-04 23:20:43

标签: java struts struts-config

我正在尝试将这两个网址路由到不同的操作。我们正在使用Struts 1.2:
/ ABC-DEF /产品
/ ABC-DEF

我尝试首先执行此操作:

<action path="/abc*/products" type="com.business.exampleAction">
    <forward name="success" path="/go"/>
</action>

然后这一个:

<action path="/abc*" type="com.business.differentExampleAction">
    <forward name="success" path="/goElsewhere"/>
</action>

但它总是转到第二个动作(在这种情况下为differentExampleAction)。 我已尝试过*的各种迭代,比如。*或(。*),但还没有找到任何实际可行的东西。

从我读过的内容来看,struts-config中允许的唯一正则表达式字符似乎是通配符(*和**),但我希望我错了。

1 个答案:

答案 0 :(得分:1)

不幸的是,你对Struts 1.x中的通配符是正确的......在*之后你不能有任何东西。见documentation section 4.10。这是Struts 1.x的许多限制之一...被授予,它是最先工作的Java MVC框架之一(现在显然有一些问题),这就是我决定切换到Spring MVC 3.x的原因,因为它允许我做更像Rest的URI,例如:

/abc/product/{productId}/part/{partId}

我只是看不出如何在Struts 1.x中轻松实现这一点。