导航:首页 > 创造发明 > actioncontext创造几次

actioncontext创造几次

发布时间:2021-01-23 15:24:04

1. org.apache.struts2.dispatcher.ActionContextCleanUp 这个类在strtus2-core-2.5.2里面没有了呢

filter内容按以下方式修改即可解决struts-cleanuporg.apache.struts2.dispatcher.ActionContextCleanUpstruts-cleanup/*-->注释以上,版改为以下内容权struts-prepareorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilterstruts-prepare/*struts-executeorg.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilterstruts-execute/*

2. struts2中ActionContext是什么

ActionContext是Action的上下文,Struts2自动在其中保存了一些在Action执行过程中所需的对象,比如, parameters, locale等。Struts2会根据每个执行HTTP请求的线程来创建对应的ActionContext,即一个线程有一个唯一的ActionContext。因此,使用者可以使用静态方法ActionContext.getContext()来获取当前线程的ActionContext,也正是由于这个原因,使用者不用去操心让Action是线程安全的。

无论如何,ActionContext都是用来存放数据的。Struts2本身会在其中放入不少数据,而使用者也可以放入自己想要的数据。ActionContext本身的数据结构是映射结构,即一个Map,用key来映射value。所以使用者完全可以像使用Map一样来使用它,或者直接使用Action.getContextMap()方法来对Map进行操作。

Struts2本身在其中放入的数据有ActionInvocation、application(即ServletContext)、conversionErrors、Locale、action的name、request的参数、HTTP的Session以及值栈等。完整的列表请参考它的Javadoc(本文附录有对它包含内容的讨论)。

由于ActionContext的线程唯一和静态方法就能获得的特性,使得在非Action类中可以直接获得它,而不需要等待Action传入或注入。需要注意的是,它仅在由于request而创建的线程中有效(因为request时才创建对应的ActionContext),而在服务器启动的线程中(比如fliter的init方法)无效。由于在非Action类中访问其的方便性,ActionContext也可以用来在非Action类中向JSP传递数据(因为JSP也能很方便的访问它)。

3. 使用struts2时不配置ActionContextCleanUp会发生什么

这个filter主要是为了整合SiteMesh 等一些页面统一化管理的..自己下载一个流程图对应看一专下..不配置属ActionContextCleanUp的话 struts封装的一些request response等信息会在主filter StrutsPrepareAndExecuteFilter里被清空,,这样后续的filter 就无法获取了 而如果配置了ActionContextCleanUp的话 清空工作主filter就不管了 交与ActionContextCleanUp处理 而整合的其他filter 在应答响应的时候 是在主filter之后 ActionContextCleanUp之前...

4. ActionContext.initialize();这里的initialize起什么作用

初始化作用,在web.xml文件中配置的init-param参数也会随之加载过来

5. struts2中ActionContext的作用范围。

ActionContext.getContext().getSession().put(key,value)可以将session的值保存在值栈(ValueStack)中,由于session在一次会回话中的数据是共享的,所以在其他页面也就可答以通过<s:property value="#session.key" />访问值栈中的值了

6. struts2中ActionContext是什么东东

ActionContext是Action的上下文,Struts2自动在其中保存了一些在Action执行过程中所需的对象,比如session, parameters, locale等。Struts2会根据每个执行HTTP请求的线程来创建对应的ActionContext,即一个线程有一个唯一的ActionContext。因此,使用者可以使用静态方法ActionContext.getContext()来获取当前线程的ActionContext,也正是由于这个原因,使用者不用去操心让Action是线程安全的。

无论如何,ActionContext都是用来存放数据的。Struts2本身会在其中放入不少数据,而使用者也可以放入自己想要的数据。ActionContext本身的数据结构是映射结构,即一个Map,用key来映射value。所以使用者完全可以像使用Map一样来使用它,或者直接使用Action.getContextMap()方法来对Map进行操作。

Struts2本身在其中放入的数据有ActionInvocation、application(即ServletContext)、conversionErrors、Locale、action的name、request的参数、HTTP的Session以及值栈等。完整的列表请参考它的Javadoc(本文附录有对它包含内容的讨论)。

由于ActionContext的线程唯一和静态方法就能获得的特性,使得在非Action类中可以直接获得它,而不需要等待Action传入或注入。需要注意的是,它仅在由于request而创建的线程中有效(因为request时才创建对应的ActionContext),而在服务器启动的线程中(比如fliter的init方法)无效。由于在非Action类中访问其的方便性,ActionContext也可以用来在非Action类中向JSP传递数据(因为JSP也能很方便的访问它)。

7. ActionContext.getContext().getSession() 怎么用在线等,希望有高手教我~!

ActionContext.getContext().getSession() .put("键","要存放的值");
这样就存进去了
然后在JSP里就<%=session=getAttribut("键")%>就可以了

8. ServletContext和ServletActionContext有什么区别

ServletActionContext和ActionContext有着一些重复的功能,在我们的Action中,该如何去抉择呢?我们遵循的原则是:如果ActionContext能够实现我们的功能,那最好就不要使用ServletActionContext,让我们的Action尽量不要直接去访问Servlet的相关对象. 注意:在使用ActionContext时有一点要注意: 不要在Action的构造函数里使用ActionContext.getContext(),因为这个时候ActionContext里的一些值也许没有设置,这时通过ActionContext取得的值也许是null; 同样,HttpServletRequest req = ServletActionContext.getRequest()也不要放在构造函数中,也不要直接将req作为类变量给其赋值。至于原因,我想是因为前面讲到的static ThreadLocal actionContext = new ActionContextThreadLocal(),从这里我们可以看出ActionContext是线程安全的,而ServletActionContext继承自ActionContext, 所以ServletActionContext也线程安全,而线程安全要求每个线程都独立进行,所以req的创建也要求独立进行,所以ServletActionContext.getRequest()这句话不要放在构造函数中,也不要直接放在类中,而应该放在每个具体的方法体中(eg:login()、queryAll()、insert()等),这样才能保证每次产生对象时独立的建立了一个req。

9. session=ActionContext.getContext().getSession().get();这个方法偶尔取出来的值为空。

你的xwork jar包的版本如果是 2.1.2之后的,那使用session的时候,需要自己创建session。
在action类中,private Map<String, Object> session;
public void setSession(Map<String, Object> session) {
this.session = session;
}
通过setSession覆盖原来的代码,将自己定义的session添加到 ActionContext.getContext()中。然后再将内容添加到session中,ActionContext.getContext().getSession().put(key,value);

10. ActionContext.getContext()的几种用法

ActionContext.getContext().getSession() 获取的是session,然后用put存入相应的值,只要在session有效状态下,这个值一直可用

ActionContext.getContext().put("x", x) 默认的是request,在这个request未结束之前都是可用的

ActionContext.getContext().getValueStack().push(x),在Struts2中,一个请求在最终到达Action的方法之前,Action对象本身会被压入ValueStack,可以把一个对象直接压入到valuestack中

阅读全文

与actioncontext创造几次相关的资料

热点内容
武汉疫情投诉 浏览:149
知识产权合作开发协议doc 浏览:932
广州加里知识产权代理有限公司 浏览:65
企业知识产权部门管理办法 浏览:455
消费315投诉 浏览:981
马鞍山钢城医院 浏览:793
冯超知识产权 浏览:384
介绍小发明英语作文 浏览:442
版权使用权协议 浏览:1000
2018年基本公共卫生服务考核表 浏览:884
马鞍山候车亭 浏览:329
学校矛盾纠纷排查领导小组 浏览:709
张江管委会知识产权合作协议 浏览:635
关于开展公共卫生服务项目相关项目督导的函 浏览:941
闺蜜证书高清 浏览:11
转让房转让合同协议 浏览:329
矛盾纠纷排查调处工作协调交账会议纪要 浏览:877
云南基金从业资格证书查询 浏览:313
新知识的摇篮创造力 浏览:187
股转转让协议 浏览:676