Strut2 ognl取出存放在request,session,application和对象栈的中的值

1.取出request,session,applicaiton中的值

  a.往里面加入request,session,application中加入值

	public String testServlet(){
		ServletActionContext.getRequest().setAttribute("request_username", "username");
		ActionContext.getContext().getSession().put("session_username", "username");
		ServletActionContext.getServletContext().setAttribute("application_username","username");

		return "servlet";
	}

  取值:

   	输出request,session,application域中的值,由于访问的是map,所以要加个#号<br>
   	request的值:<s:property value="#request.request_username" /><br>
   	session的值:<s:property value="#session.session_username" /><br>
   	application的值:<s:property value="#application.application_username" /><br>

  

2.用valuestack中的对象栈的set方法存放的数据,把对象封装成一个hashmap,放入栈顶

  a.放值

	public String testValueStack_Set(){
		ValueStack valueStack = ActionContext.getContext().getValueStack();
		valueStack.set("msg", "message");
		return "value_stack_set";
	}

  b.取值

   	输出valuestack的set方法存放的数据,实际输出的是栈顶的数据<br>
   	<s:property value="msg"/><br>

  

3.    在person,student和ognlAction中同时有commit,测试页面会输出栈中第一个commit,也就是OgnlAction中的commit

  a.放值,用add方法放

	public String testValueStack_Deep(){
		Person person=new Person();
		person.setAge(new Integer(1));
		person.setName("person");
		person.setCommit("person");

		Student student=new Student();
		student.setAge(2);
		student.setName("student");
		student.setCommit("student");

		ValueStack valueStack = ActionContext.getContext().getValueStack();
		CompoundRoot root = valueStack.getRoot();
		root.add(person);
		root.add(student);

		return "valueStack_deep";

	}

  取值:

   	在person,student和ognlAction中同时有commit,测试页面会输出栈中第一个commit,也就是OgnlAction中的commit
   	<s:property value="commit"/>

  

时间: 2024-10-28 22:21:15

Strut2 ognl取出存放在request,session,application和对象栈的中的值的相关文章

struct2访问或添加request/session/application

访问或添加request/session/application1 通过ActionContext//这样放置public String execute(){ActionContext ctx = ActionContext.getContext();ctx.getApplication().put("app","lll");ctx.getSession().put("ses","session范围");ctx.put(&qu

page,request,session,application四个域对象的使用及区别

转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束,返回响应的整个过程.在这个过程中使用forward方式跳转多个jsp.在这些页面里你都可以使用这个变量. 3.Session 有效范围当前会话,从浏览器打开到浏览器关闭这个过程. 4.application它的有效范围是整个应用. 作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一

Struts2里如何取得request,session,application

第一种:取得MAP类型的request,session,application在java文件里写 package com.xjtu.st; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private Map reques

暑期项目经验(九) -- request session application

request.session.application 一.基础知识 可以看看  浅谈:request,session,application(http://blog.csdn.net/hzc543806053/article/details/7416007) 要点: 作用域: request<session<application 共同方法:都可以使用 setAttribute(String name , Object o ) ,getAttribute(String name) 二.在ja

request, session, application辨析(待更新)

作用域 request < session < application 分析 1. request 只在一次请求中有效,当请求发送变化时,信息将失效. 2. session 在当前一次会话中有效,即当同一个浏览器多次访问时,在这多次访问中传递信息,就是session的作用. session失效: session过期 服务器调用invalidate() 通过<%@ page session="false" %>(不推荐使用) 3. application 在一次服

struts2 action中获取request session application的方法

共四种方式: 其中前两种得到的是Map<String,Object>  后两种得到的才是真正的request对象 而Map就是把request对象中的属性取出做成了键值对而已. [方法一] public class LoginAction { private Map request; private Map session; private Map application; public String execute() { request = (Map)ActionContext.getCo

page request session application 范围

在JSP页面中的对象,包括用户创建的对象(例如,JavaBean对象)和JSP的隐含对象,都有一个范围属性.范围定义了在什么时间内, 在哪一个JSP页面中可以访问这些对象.例如,session对象在会话期间内,可以在多个页面中被访问.application对象在整个Web应 用程序的生命周期中都可以被访问.在JSP中,有4种范围,如下所示. 1. page范围 具有page范围的对象被绑定到javax.servlet.jsp.PageContext对象中.在这个范围内的对象,只能在创建对象的页面

对request,session,application作用域形象理解

看到一篇比较有意思的文章,分享一下.原网址:http://blog.csdn.net/rushkid02/article/details/8063792 几乎所有的Web开发语言都支持Session功能,Servlet也不例外. Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的. 作用域分为四种,分别为: page 在当前页面有效(仅用于JSP中)  request 在当前请求中有效  session 在当前会话中有效  application 在所有应用程

android 获取application和activity下meta-data中的值

meta-data在AndroidManifest中是以键值对的形式存在的,可以将meta-data放在application根节点下,也可以放在某个activity节点下.因为存放的位置不同,因此获取value时也要使用对应的方法,下面是我写的一个小测试. 代码如下: 先是在AndroidManifest中的application和mainActivity下添加两个meta-data属性. <application android:allowBackup="true" andr