簡體   English   中英

未在Struts2中使用OGNL將請求對象傳遞給靜態方法

[英]Request object is not passed to static method using OGNL in struts2

我正在開發Struts 2.3應用程序。 在該應用程序中,我正在從JSP調用靜態實用程序方法,該方法將HttpServletRequest對象作為參數,並在處理請求后返回字符串。 當我嘗試使用JSP scriptlet時,使用適當的參數調用了方法,例如:

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

但是,當我嘗試將OGNL用於相同的邏輯時,使用空請求對象作為參數而不是像下面這樣的實際請求對象來調用方法:

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

我還在OGNL中嘗試了#request而不是request ,但是在那種情況下,方法沒有被調用。

將此常量放在配置文件中以啟用靜態方法訪問。

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

采用

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

並在getResult() {

HttpServletRequest request = ServletActionContext.getRequest();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM