(\d)
正規表現クラスをアクションにマップするにはどうすればよいですか?
例:
/user/123 , /user/345, /user/546456 ....
(\d)
正規表現クラスをアクションにマップするにはどうすればよいですか?
例:
/user/123 , /user/345, /user/546456 ....
高度なワイルドカードを使用:
高度なワイルドカード
2.1.9+からアクション名に正規表現を定義できるようになりました。この形式のワイルド カードを使用するには、次の定数を設定する必要があります。
<constant name="struts.enable.SlashesInActionNames" value="true"/> <constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/> <constant name="struts.patternMatcher" value="regex" />
正規表現には 2 つの形式があります。最も単純なものは です
{FIELD_NAME}
。この場合、アクション内の を持つフィールドにはFIELD_NAME
、一致したテキストが入力されます。次に例を示します。<package name="books" extends="struts-default" namespace="/"> <action name="/{type}/content/{title}" class="example.BookAction"> <result>/books/content.jsp</result> </action> </package>
この例では、url
/fiction/content/Frankenstein
が要求された場合、BookAction のフィールド "type
" が " " に設定されfiction
、フィールド "title
" が " " に設定されFrankenstein
ます。
prepare()
メソッドでこれらのパラメーターが必要な場合は、調整された Interceptor Stack が必要であることに注意してください。