0

インターセプターが構成されたデフォルトのパッケージがあり、そのパッケージを別のパッケージに拡張して、同じインターセプターを呼び出しています

<action name="availability**">
            <param name="subTab">availability</param>
            <interceptor-ref name="tabStack"/>          
            <result>/WEB-INF/jsp/index.jsp?include=visibilit/availability.jsp</result>                      
        </action>

問題は、パラメータがインターセプターコード内で読み取られていないことです。

Map params = invocation.getInvocationContext().getParameters();
subTab = params.get("subTab").toString(); //NULL exception

拡張インターセプターにパラメーターを渡す方法はありますか?

ありがとう!

4

2 に答える 2

0

この構文を試すことができますか

<action name="availability**">
<interceptor-ref name="tabStack">
     <param name="subTab">availability</param>
</interceptor-ref>
</action>

よくわかりませんが、これでうまくいくかもしれません

于 2010-06-18T06:35:49.553 に答える
0

呼び出しているgetParameters()メソッドは、HTTPリクエストからのパラメーターのみを返します。struts.xmlで設定されたパラメーターは「静的パラメーター」と呼ばれ、次のように(intercept()メソッド内で)アクセスできます。

ActionConfig config = invocation.getProxy().getConfig();
Map<String, String> parameters = config.getParams();
String subTab = params.get("subTab");

ソース:StaticParametersInterceptor.java

于 2010-06-18T12:59:38.743 に答える