为了避免与Servlet API耦合在一起,方便Action类做单元测试,Struts 2对HttpServletRequest、HttpSession和ServletContext进行了封装,构造了三个Map对象来替代这三种对象,在Action中,直接使用HttpServletRequest、HttpSession和ServletContext对应的Map对象来保存和读取数据。
(一)通过ActionContext来获取request、session和application对象的LoginAction1
ActionContext context = ActionContext.getContext();
Map request = (Map)context.get("request");
Map session = context.getSession();
Map application = context.getApplication();
request.put("greeting", "欢迎您来到程序员之家");//在请求中放置欢迎信息。
session.put("user", user);//在session中保存user对象
application.put("counter", count);
在JSP中读取
<body><h3>${sessionScope.user.username},${requestScope.greeting}。<br>本站的访问量是:${applicationScope.counter}</h3>
</body>
(二)直接使用ActionContex类的put()方法
ActionContext.getContext().put("greeting", "欢迎您来到http://www. sunxin.org");
然后在结果页面中,从请求对象中取出greeting属性,如下:
${requestScope.greeting} 或者 <%=request.getAttribute("greeting")%>
参阅:
http://apps.hi.baidu.com/share/detail/9065250
分享到:
相关推荐
ActionContext通常通过`ActionContext context = ActionContext.getContext();`来获取,这是因为ActionContext是基于ThreadLocal实现的。ThreadLocal是一种线程局部变量,每个线程都有自己的副本,避免了多线程环境...
B.ActionContext ct= ActionContext.getContext() HttpServletRequest request= (HttpServletRequest)ct.get(ServletActionContext. HTTP_REQUEST ); 获得session对象: 在Struts2中底层的session都被封装成了...
此外,Struts2还提供了Action上下文(ActionContext)作为便捷访问这些域的途径,通过`ActionContext.getContext()`获取当前请求的上下文对象,再从中获取所需的域对象。 在"struts2-web"这个压缩包文件中,可能...
ActionContext.getContext().put("exponent", new String(Hex.encodeHex(publicKey.getPublicExponent().toByteArray()))); // 页面里,Javascript对明文进行加密: 09 var modulus = $('#hid_modulus').val(); var...
例如,你可以使用`ActionContext.getContext().get("key")`来获取请求或会话中的值,而`ActionContext.getContext().getValueStack()`则可以获取ValueStack,它是Struts2中处理模型驱动的一个关键部分。 2. **...
ActionContext.getContext().getSession(); ActionContext.getContext().getParameters(); ActionContext.getContext().getApplication(); ActionContext.getContext().getContextMap(); ActionContext.getContext()...
由于ActionContext的实例在Action执行时才创建,因此不建议在Action的构造函数中使用`ActionContext.getContext()`,因为此时ActionContext可能尚未初始化。 总的来说,在Struts2中,Action类可以通过...
这两种方式都是通过`ActionContext`来获取Session对象,第一种直接通过`getSession()`方法得到,第二种则通过`getContext()`方法后,再根据`ActionContext.SESSION`获取。 ### 应用场景示例 1. **用户认证**:在...
通过ActionContext.getContext().getSession().put("random", randomNum.getRandomCode())将数字存放到session当中 2、当你登录时候,提交的输入框中的验证码和session中存放的验证码比较,如果一样,则通过,不一样,则...
开发者可以直接在Action中使用`ActionContext.getContext().getValueStack()`获取ValueStack,或者通过`ActionContext.getContext().get("request")`或`ActionContext.getContext().get("session")`获取请求和...
Object value = ActionContext.getContext().getSession().get("key"); // 设置session ActionContext.getContext().getSession().put("key", value); // 访问request value = ActionContext.getContext().get...
if (ActionContext.getContext().getSession().get("counter") == null) { count = 1; } else { count = (int) ActionContext.getContext().getSession().get("counter"); count++; } ActionContext....
ActionContext.getContext().getValueStack().push("myKey", "myValue"); return SUCCESS; } } ``` 然后在JSP页面上通过`OGNL`表达式获取: ```jsp ${myKey} ``` 2. 响应(Response)范围: 响应是服务器向...
Map session = (Map) ActionContext.getContext().get(ActionContext.SESSION); // 获取原始的HttpSession HttpSession httpSession = request.getSession(); ``` #### 五、总结 Struts2提供了一套完整的机制来...
例如,`ActionContext.getContext().put()`可以用来设置请求参数,而`ActionContext.getContext().get()`则用于获取这些参数。这使得开发者可以直接操作请求和响应对象,而无需显式地从HttpServletRequest和...
ActionContext.getContext().getResponse().setHeader("Content-Disposition", "attachment; filename=report.pdf"); responseOutputStream = ActionContext.getContext().getResponse().getOutputStream(); ...
ActionContext.getContext().setLocale(Locale.SIMPLIFIED_CHINESE); break; case 1: // 英文 ActionContext.getContext().setLocale(Locale.US); break; case 2: // 韩文 ActionContext.getContext()....
通过调用 `ActionContext.getContext()` 方法可以获得当前的ActionContext实例。ActionContext中包含了多个Map结构,用来存储不同的作用域内的对象。 - **get()** 方法用于获取指定名称的对象。 - **put()** 方法...
在这个例子中,我们首先通过`ActionContext.getContext()`获取当前的ActionContext,然后使用`getValueStack()`获取ValueStack。接着,我们将创建的`User`对象压入ValueStack,然后从ValueStack中找到该对象并将其放...