可能是一個noob問題,但我可以從struts Form對象中訪問存儲在會話中的變量嗎?如何從struts表單對象訪問會話
public class MyForm extends ActionForm {...}
可能是一個noob問題,但我可以從struts Form對象中訪問存儲在會話中的變量嗎?如何從struts表單對象訪問會話
public class MyForm extends ActionForm {...}
您需要爲actionServlet(或)JSP中的表單設置值。我不認爲你可以在這裏直接訪問請求(除非你做了一些定製)。
您可以通過使用檢索會話的屬性HttpServletRequest
:
request.getSession(false).getAttribute("yourAttributeName");
在struts Form對象中沒有可用的請求對象。 – 2012-04-03 15:30:52
它在驗證方法中,但我想這不是你想要訪問它的地方。我應該讓你確認一下。 – 2012-04-03 15:37:57
Have'nt試過在家裏,但你可以使用:
private HttpServletRequest request;
public void reset(ActionMapping mapping, HttpServletRequest request) {
this.request = request;
}
,並存儲在請求如上所述用於以後使用的本地字段。
我們已經開發和維護使用Struts 1.我知道你的問題,我們有一個ActionContext
一流的非常大的項目,與ActionContextFilter
,過濾器結合的請求和響應對象使用一個ThreadLocal
成員當前線程(和明顯它在流程結束時取消綁定)。
現在我們可以訪問請求,響應和...使用ActionContext.getCurrentContext().getRequest()
和ActionContext.getCurrentContext().getResponse()
。
我相信同樣的事情可以幫助你很多。
整個想法來自Clinton Begin's(iBatis的作者)樣本PetStore;他在該樣本中圍繞Struts 1建立了良好的擴展。我建議你查看整個工作。
request.getSession()。那是你在找什麼? – kosa 2012-04-03 15:29:17
如下:沒有請求對象可用? – 2012-04-03 15:32:16
您需要爲actionServlet(或)JSP中的表單設置值。我不認爲你可以在這裏直接訪問請求(除非你做了一些定製)。 – kosa 2012-04-03 15:34:21