2017-05-16 22 views
1

でアクション名として正規表現を使用すると、このコードは、私の作品:予想通りストラット

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

は、私は私のアクションクラスでparamOneとparamTwoの値を取得することができますよ。 しかし、リクエストURLのparamOneには、すでに定義済みの値しか持たないのでしょうか?同様に、私はいくつかの正規表現を書いたり、私のparamOneが私が既に定義した値のうちの1つだけを持つようにすることができますか? paramoneが許可された値以外の値を持つ場合、アクションクラスは呼び出されません。

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

また、上の式の "。+"は何を意味しますか?私のparamOneに値がtrueまたはfalseのみであるようにしたい場合は、次のようにすることができますか? 2.1.9+正規表現から

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

まず、パターンマッチャーを有効にしてから、正規表現を作成する必要があります。 –

答えて

0

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

アクション名に定義されて定義することができます。 [...] 正規表現は、{FIELD_NAME:REGULAR_EXPRESSION}の形式で指定することもできます。正規表現は通常のJava正規表現です。

+0

はい、正規表現が機能しています。しかし、正規表現で '*'を使用すると、java/util/treemap.javaにnullポインタ例外がスローされます。 – user5739878

+0

そして、私はparamTwoに10個の許容値を持たせたい。正規表現の10個の値のそれぞれを以下のように指定する必要があります:value1 |値2 | .. 等々?代わりに許可された値を格納するために何らかの変数を使用できますか? – user5739878

関連する問題