如何从struts表单对象访问会话

时间:2012-04-03 15:17:21

标签: java session struts struts-1

可能是一个noob问题,但是我可以从struts Form对象中访问存储在会话中的变量吗?

public class MyForm extends ActionForm {...}

4 个答案:

答案 0 :(得分:4)

我们使用Struts 1开发并维护了一个非常大的项目。我知道你的问题,我们有一个ActionContext类,带有ActionContextFilter,过滤器将请求和响应对象绑定到当前线程使用ThreadLocal成员(显然在过程结束时将它们解除绑定)。

现在,我们可以使用ActionContext.getCurrentContext().getRequest()ActionContext.getCurrentContext().getResponse()访问请求,响应和...

我相信同样的事情可以帮助你。

整个想法来自 Clinton Begin (iBatis的作者)样本PetStore;他在该示例中围绕Struts 1构建了一个很好的扩展。我建议你回顾整个工作。

答案 1 :(得分:1)

您需要在actionServlet(或)JSP中为表单设置值。我不认为你可以在这里直接访问请求(除非你做一些自定义)。

答案 2 :(得分:0)

您可以使用HttpServletRequest

在会话中检索属性
request.getSession(false).getAttribute("yourAttributeName");

答案 3 :(得分:0)

没有在家尝试但你可以使用:

private HttpServletRequest request;

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

并将请求存储在本地字段中供以后使用,如上所述。