ActionContext 中的context (Map)中存放的变量

以 webwork-2.2.4.jar 版本为例:

    在DispatcherUtils 的createContextMap(...)方法中:

        HashMap extraContext = new HashMap();


        extraContext.put(ActionContext.PARAMETERS, new HashMap(parameterMap)); --request中的parameter Map,重新生成一个HashMap,与之前的对象就没有联系了.
        extraContext.put(ActionContext.SESSION, sessionMap); -- session 中的attribute Map
        extraContext.put(ActionContext.APPLICATION, applicationMap); -- servletContext 中的attribute Map             

extraContext.put("request", requestMap);
        extraContext.put("session", sessionMap);
        extraContext.put("application", applicationMap);
        extraContext.put("parameters", parameterMap);这些设置是为了在页面上的OGNL语言方便 "#session..."

        把request,session,servletContext对象放在了这里:

        extraContext.put(WebWorkStatics.HTTP_REQUEST, request);
        extraContext.put(WebWorkStatics.HTTP_RESPONSE, response);
        extraContext.put(WebWorkStatics.SERVLET_CONTEXT, servletContext);

    在每个request之后创建的ActonContext(),(在DefaultActionInvocation init())时,上面所说的extraContext的变量会放入到ActionContext 的context中去,ActionContext的get(),set(..)方法操作的都是context中的变量. 

    这样在自己创建的Action中对ActionContext get("session")的操作会是针对 context中的 sessionMap进行操作,如果在页面上再去取 HttpSession getAttribute() 的话是没有该值的

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值