アクションをスラッシュで本当に区切りたい場合は、次を使用NAMESPACE
してください。
<package name="profile" extends="struts-default" namespace="/Profile">
<action name="*" method="{1}" class="com.controller.Profile">
<result name="view" tiles="viewProfile">viewProfile</result>
<result name="edit" tiles="editProfile">editProfile</result>
</action>
</package>
また、URLでパラメータを使用しようとしている場合は、使用を検討する必要があります
<constant name="struts.enable.SlashesInActionNames" value="true"/>
Struts2構成ファイルにあります。
Wildcart Mappingドキュメントに関しては、次のこともできます。
<action name="**" method="{1}" class="com.controller.Profile">
<result name="view" tiles="viewProfile">viewProfile</result>
<result name="edit" tiles="editProfile">editProfile</result>
</action>
** matches zero or more characters including the slash ('/') character.
これは、 Wildcartマッピングドキュメントでも見つけることができ ます。
最初に本当に必要なものを考えてから、構成と実装を行う必要があります。
あなたの場合、Struts 2は、アクション構成に関して、アクションにスラッシュがあると見なします
スラッシュ付き
のアクション名アクション名にスラッシュが含まれている場合(たとえば <action name="admin/home" class="tutorial.Admin"/>
)、struts.xmlファイルの定数を使用して、を指定することにより、アクション名にスラッシュを明確に許可する必要があります
<constant> name="struts.enable.SlashesInActionNames" value="true"/>
。
このプロパティをtrueに設定すると副作用があるため、説明についてはJIRAIssueWW-1383を参照してください。
ドットとダッシュを使用したアクション名 アクションの名前付けは非常に柔軟ですが、ドット(例)やダッシュ(例)
を使用する場合は注意が必要です。現時点では、ドット表記には既知の副作用はありませんが、ダッシュ表記は、特定のタグおよびテーマに対して生成されたJavaScriptで問題を引き起こします。注意して使用し、常にキャメルケースのアクション名(例
)またはアンダースコア(例)を使用するようにしてください。create.user
my-action
createUser
my_action
したがって、Struts2はスラッシュをアンダースコアに変換します。