2

のような URL を使用したい

host/ActionName/123/abc/

のようなクエリ文字列を渡す代わりに

host/ActionName?parm1=123&parm2=abc

Struts 2でそれを行うにはどうすればよいですか?

以下のように実行しましたが、500エラーコードが表示されて機能しません

<constant name="struts.enable.SlashesInActionNames" value="true"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>

<package name="default" extends="struts-default" namespace="/">
        <action name="/action/*"
    class="gov.apiic.serviceRequest.action.ServiceRequest" method="method" >
    <param name="p1">{1}</param>
    <result name="success">views.jsp</result>
    </action>
</package>
4

2 に答える 2

2

2.1+ のプレーンな Struts2 では不可能でした。回避策として、 UrlRewriter filterを使用してこれを行うことができます。ワイルドカードの助けを借りてStruts2 2.1+から、この投稿をhost/ActionNmae/param1-123/param2-abc参照のようなものを使用できますが、のようなものは使用できません。違いは、2 番目のケースにはパラメーター名がないことです。回避策は、アクション名の後に Parametersを使用することです。host/ActionNmae/123/abc/

@Action(value = "/ActionNmae/*/*", params = {"param1", "{1}", "param2", "{2}"}  
于 2013-01-19T15:36:56.653 に答える
1

namedVariableまたはregexパターンマッチャーのいずれかを使用できます。

それぞれに独自の長所と短所があり、そのほとんどは回避できます。

于 2013-05-15T18:00:59.277 に答える