2012-04-03 50 views
1

可能是一個noob問題,但我可以從struts Form對象中訪問存儲在會話中的變量嗎?如何從struts表單對象訪問會話

public class MyForm extends ActionForm {...} 
+0

request.getSession()。那是你在找什麼? – kosa 2012-04-03 15:29:17

+0

如下:沒有請求對象可用? – 2012-04-03 15:32:16

+1

您需要爲actionServlet(或)JSP中的表單設置值。我不認爲你可以在這裏直接訪問請求(除非你做了一些定製)。 – kosa 2012-04-03 15:34:21

回答

1

您需要爲actionServlet(或)JSP中的表單設置值。我不認爲你可以在這裏直接訪問請求(除非你做了一些定製)。

0

您可以通過使用檢索會話的屬性HttpServletRequest

request.getSession(false).getAttribute("yourAttributeName"); 
+0

在struts Form對象中沒有可用的請求對象。 – 2012-04-03 15:30:52

+0

它在驗證方法中,但我想這不是你想要訪問它的地方。我應該讓你確認一下。 – 2012-04-03 15:37:57

0

Have'nt試過在家裏,但你可以使用:

private HttpServletRequest request; 

public void reset(ActionMapping mapping, HttpServletRequest request) { 
    this.request = request; 
} 

,並存儲在請求如上所述用於以後使用的本地字段。

4

我們已經開發和維護使用Struts 1.我知道你的問題,我們有一個ActionContext一流的非常大的項目,與ActionContextFilter,過濾器結合的請求和響應對象使用一個ThreadLocal成員當前線程(和明顯它在流程結束時取消綁定)。

現在我們可以訪問請求,響應和...使用ActionContext.getCurrentContext().getRequest()ActionContext.getCurrentContext().getResponse()

我相信同樣的事情可以幫助你很多。

整個想法來自Clinton Begin's(iBatis的作者)樣本PetStore;他在該樣本中圍繞Struts 1建立了良好的擴展。我建議你查看整個工作。

相關問題