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"/>

  

4.在对象栈中person对象作为key,利用set方法存放在对象栈的栈顶,取出它的name属性

  a.存放数据

	public String testObjectToRoot_Set(){
Person person=new Person();
person.setAge(new Integer(1));
person.setName("person");
person.setCommit("person");
ValueStack valueStack = ActionContext.getContext().getValueStack();
valueStack.set("person", person);
return "root_set";
}

  b.取出数据

   	<s:property value="person.name" /><br>

  

5.构造map,在页面上构造map

   	构造map:<br>
<!--
这个标签对应的html代码
<input type="radio" id="fool" value="fool"/><label for="fool">bool</label>
<input type="radio" id="foo2" value="foo2"/><label for="foo2">boo2</label>
从上面可以看出,map中key相当于radio中的value和id,map中的value相当于页面上显示的值
-->
<s:radio list="#{'fool':'bool','foo2':'boo2' }"></s:radio><br>

  

6.构造map,在后台构造map,然后存放在request域中,在页面取出来

  a.构造map,放入request域中

	public String testMap_Request(){
Map<String,String> map=new HashMap<String, String>();
map.put("male", "男");
map.put("girl","女"); ServletActionContext.getRequest().setAttribute("map", map);
return "map_request";
}

  b.在页面取出来

   	 从request域中获取map<br>
<s:property value="#request.map.male"/><br>

  

7.用put方法保存map至context中的map

  a.存放map

	public String testMap_Put(){
ActionContext context = ActionContext.getContext();
Map<String,String> map=new HashMap<String, String>();
map.put("male", "男");
map.put("girl","女");
context.put("map",map);
return "map_put"; }

  b.取出map中的数据

   	 从map中取出利用put方法存放的map<br>
<s:property value="#map.male"/><br>

  

8.把一个字符串放到request域中,然后用%输出

  a.存放数据

	public String testRequest_Percent(){
ServletActionContext.getRequest().setAttribute("request_username","username");
return "request_percent";
}

  b.取出数据

   	 利用%输出request域中的内容<br>
<s:textfield name="username" label="%{#request.request_username}"></s:textfield><br>

  

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

  1. request,session,application

    JSP 的3个内置对象request,session,application,其实都有一个作用域,这些对象内部有一个Map成员用于存放数据,比如session对象的setAttribute(key,v ...

  2. struct2访问或添加request/session/application

    访问或添加request/session/application 1 通过ActionContext //这样放置 public String execute()  {     ActionConte ...

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

    作用域 request < session < application 分析 1. request 只在一次请求中有效,当请求发送变化时,信息将失效. 2. session 在当前一次会话 ...

  4. Struts2里如何取得request,session,application

    第一种:取得MAP类型的request,session,application在java文件里写 package com.xjtu.st; import java.util.Map; import c ...

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

    转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束, ...

  6. JavaWeb -pageContext/request/session/application

    pageContext/request/session/application总结 一.范围差异 1. pageContext jsp页面容器 当前页面有效 2. request 请求对象 同一次请求 ...

  7. Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)

    truts2在Action中如何访问request,session,application(即ServletContext)对象???? 方式一:与Servlet API解耦的方式      可以使用 ...

  8. struts2标签获取parameter,request,session,application中的值

    http://localhost:8080/demo/index.jsp?flag=kkkk <s:property value="#parameters.flag" /&g ...

  9. struts2 action中获取request session application的方法

    共四种方式: 其中前两种得到的是Map<String,Object>  后两种得到的才是真正的request对象 而Map就是把request对象中的属性取出做成了键值对而已. [方法一] ...

随机推荐

  1. .NET Core2使用Azure云上的Iot-Hub服务

    基于工业4.0大背景下的工业物联网是近几年内热门的话题,依靠信息化技术企业可以实现数字化转型,生产可以实现智能化制造,设备可以实现自动化运作.然而,海量的数据采集是整个建设过程的基础环节,如何处理与利 ...

  2. Python学习-9.Python函数定义

    先定义一个最基本的函数作为例子: def Print(msg): print(msg) 函数名为Print,参数有一个,为msg,函数体调用print系统函数,输出msg. 接下来就是可变参数,这个特 ...

  3. GBK还是UTF-8? Eclipse连接TFS的编码之痛!encoding, encoding, encoding…

    在中文Windows操作系统上安装Eclipse或MyEclipse,默认会将Eclipse的编码设置为GBK,与操作系统的默认编码保存一致. 在这种默认设置下,在Eclipse新增的文件不会自动被团 ...

  4. sqlcmd 执行SQL语句或没有足够的内存来执行脚本

    win+r命令提示框里面输入cmd sqlcmd -S . -U username -P password -d database -i url -S 数据库地址 -U 登录名称 -P 密码 -d 数 ...

  5. 4-C#格式处理

    本篇博客对应视频讲解 前言 前几篇文章及对应视频是带大家快速体验了一下C#,了解编程语言最基础的内容及面向对象的概念. 接下来我会进一步演示和说明C#还能做些什么. 实际上,C#就一门语言来讲,除去面 ...

  6. [SSH]struts2-spring-plugin.jar了解

    在struts2-spring-plugin.jar中有一个struts-plugin.xml,里面声明了action类由spring工厂创建.在struts2插件文档里,这样写着“The Sprin ...

  7. Git 常用知识

    git 常用命令 创建并checkout分支: git checkout -b branch_name git merge 与 git rebase 的区别 git rebase 合并后将形成一条直线 ...

  8. C#上传文件处理

    public class FileHelp : System.Web.UI.Page { /// <summary> /// 保存文件 /// 返回:数组:status[0]:文件名称:s ...

  9. “全栈2019”Java异常第一章:什么是异常?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  10. spring中scope的prototype与singleton区别

    最近在研究单例模式,突然想起项目中以下配置,scope="singleton" 和 scope="prototype"到底有何区别呢?以下做下简要分析. < ...