2

Struts 2.3 アプリケーションを開発しています。HttpServletRequestそのアプリケーションでは、オブジェクトを引数として取り、リクエストの処理後に文字列を返すJSP から静的ユーティリティ メソッドを呼び出しています。JSP スクリプトレットを使用しようとすると、次のような適切な引数でメソッドが呼び出されました。

<%
    String resultStr = com.testapp.util.Utility.getResult(request);
%> 

しかし、同じロジックにOGNLを使用しようとすると、次のような実際のリクエストオブジェクトではなく、nullリクエストオブジェクトを引数としてメソッドが呼び出されました。

<s:set name="resultStr" var="resultStr"
       value="@com.testapp.util.Utility@getResult(request)" /> 

私もOGNL#requestの代わりにrequest試しましたが、その場合、メソッドは呼び出されませんでした。

4

1 に答える 1

1

この定数を構成ファイルに追加して、静的メソッド アクセスを有効にします。

<constant name="struts.ognl.allowStaticMethodAccess" value="true" />

使用する

<s:set name="resultStr" var="resultStr" value="@com.testapp.util.Utility@getResult()" /> 

そしてgetResult() {

HttpServletRequest request = ServletActionContext.getRequest();
于 2013-05-29T13:27:36.767 に答える