课程咨询 :186 8716 1620      qq:2066486918

昆明Java培训 > 达内新闻 > java:struts2中valueStack,stackContext以及actionContext的关系
  • java:struts2中valueStack,stackContext以及actionContext的关系

    发布:昆明Java培训      来源:达内新闻      时间:2016-09-13

  • 昆明Java培训班的老师今天给大家讲struts2中valueStack,stackContext以及actionContext的关系

    一,首先给出三者的定义

    1.valueStack: 里面存放的是Action类中通过set方法设置的属性值(表单传过来的值等),由OGNL框架实现;

    2.stackContext: 也是用来存值的,stack上下文,它包含一些列对象,包括request/session/attr/application map等。

    3.actionContext: 是action的上下文,可以得到request,session,application等.

    昆明Java培训班的老师在JSP页面中访问value stack的内容时,是不用加#,而如果是访问stack context的其他对象则要加上#。

    二,如何获得ActionContext?

    1.在自定义的拦截器中:使用ActionInvocation.getInvocationContext()或者使用ActionContext.getContext()。

    2.在Action类中:让拦截器注入或者使用ActionContext.getContext()。

    3.在非Action类中:让Action类传递参数、使用注入机制注入或者使用ActionContext.getContext()。

    注意:只有运行在request线程中的代码才能调用ActionContext.getContext(),否则返回的是null。

    三,ActionContext有什么作用?

    1.通过ActionContext可以获得HttpServletRequest类:

    1

    HttpServletRequest request = (HttpServletRequest) actionContext.get(StrutsStatics.HTTP_REQUEST);

    2.通过ActionContext也可以获得request的Map:

    1

    Map requestMap = (Map) actionContext.get("request");

    因此,在JSP中,用“#request”来获得request的Map,用“#request.key”或者“#request[‘key‘]”来读取Map中的值。

    四,那ValueStack与ActionContext到底有什么联系和区别:

    昆明Java培训班的老师给大家简单两句话概括就是:

    相同点:它们都是在一次HTTP请求的范围内使用的,即它们的生命周期都是一次请求。

    不同点:值栈是栈的结构,ActionContext是映射(Map)的结构。

    了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

    推荐文章

上一篇:java程序员的日常:同比和环比

下一篇:java设计模式—工厂模式

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:11/30

Java--零基础业余班

Java--零基础业余班

开班日期:11/30

Java--周末提升班

Java--周末提升班

开班日期:11/30

Java--零基础周末班

Java--零基础周末班

开班日期:11/30

  • 网址:http://km .java.tedu.cn      地址:昆明市官渡区春城路62号证券大厦附楼6楼
  • 课程培训电话:186 8716 1620      qq:2066486918    全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56