在struts中使用正则表达式作为操作名称

时间:2017-05-16 14:05:18

标签: regex struts2

此代码可以按预期使用:

<action name="{paramOne}/{paramTwo}/details" 
class="myactionclass"  
method="execute"> 
      <result name="success">/mypage.jsp</result>
</action>

我能够在我的动作类中检索paramOne和paramTwo的值。 但请求URL中的paramOne是否有可能只有我预定义的值?比如,我可以写一些正则表达式或做其他事情,以便我的paramOne只有我已经预定义的值之一。如果paramone的值不是允许值,则不应调用action类。

<action name="/{type}/{value:.+}/list" 

我也想知道&#34;。+&#34;在上面的表达意味着什么?如果我希望我的paramOne只有值true或false ..我可以实现如下吗?

<action name="/{type}/{paramOne:(true|false)}/list" 

1 个答案:

答案 0 :(得分:0)

https://struts.apache.org/docs/wildcard-mappings.html#WildcardMappings-AdvancedWildcards

  

从2.1.9+开始,可以在动作名称中定义正则表达式。   [...]   正则表达式也可以采用{FIELD_NAME:REGULAR_EXPRESSION}的形式。正则表达式是普通的Java正则表达式。