ValueStack, 即值栈对象。 值栈对象: 是整个struts数据存储的核心,或者叫中转站。 用户每次访问struts的action,都会创建一个Action对象、值栈对象、ActionContext对象; 然后把Action对象放入值栈中; 最后再把值栈对象放入request中,传入jsp页 ...
分类:
其他好文 时间:
2017-03-09 20:12:13
阅读次数:
210
1 再探ActionContext 我们知道,ActionContext是Action执行时的上下文,里面存放着Action在执行时需要用到的对象,也称之为广义值栈。Struts2在每次执行Action之前都会创建新的ActionContext,在同一个线程里ActionContext里面的属性是唯 ...
分类:
其他好文 时间:
2017-02-27 21:17:30
阅读次数:
145
为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest、HttpSession和ServletContext进行了封装,构造了三个Map对象来替代这三种对象,在Action中,直接使用HttpServletRequest、Ht ...
分类:
其他好文 时间:
2017-02-13 18:51:16
阅读次数:
183
webapi <Message>已拒绝为此请求授权。</Message> 原有的调用base.OnAuthorization(actionContext); 换成下面这个 /// <summary> /// 鉴权 /// </summary> /// <param name="actionConte ...
分类:
Windows程序 时间:
2017-02-03 21:51:38
阅读次数:
6808
ThreadLocal是通过在不同线程中操作变量的副本,来达到线程安全的目的,是用空间资源换时间资源的方式。今天在看struts2源码的时候,发现ActionContext中,就持有一个静态的ThreadLocal,如下: public class ActionContext implements ...
分类:
其他好文 时间:
2017-01-14 15:53:30
阅读次数:
151
获取ServletAPI: 第一种方式: //在request域中放入属性req,暂且认为getContext()获取的是request域空间,但实际不是 ActionContext.getContext().put("req", "req_value"); //在session域中放入属性ses ...
分类:
其他好文 时间:
2016-12-28 23:31:22
阅读次数:
426
ValueStack 如何得到值栈: 如何将对象存入值栈: 让值栈执行表达式来获得值: 在JSP中跳过栈顶元素直接访问第二层: 在JSP中访问值栈对象本身(而不是它们的属性) ActionContext ValueStack与ActionContext的联系和区别: 如何获得ActionContex ...
分类:
其他好文 时间:
2016-12-28 20:45:48
阅读次数:
313
方法一:通过ActionContext访问SerlvetAPI,这种方式没有侵入性 Action类部分代码 import com.opensymphony.xwork2.ActionContext; public String execute() throws Exception { if("adm ...
ServletContext,ActionContext,ServletActionContext ...
分类:
其他好文 时间:
2016-12-20 00:31:33
阅读次数:
184
一、ActionContext在Struts2开发中除了将请求参数自动设置到Action的字段中,往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest)和响应(HttpS ...
分类:
其他好文 时间:
2016-12-17 19:23:13
阅读次数:
115