77范文网 - 专业文章范例文档资料分享平台

struts2(7)

来源:网络收集 时间:2019-04-14 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

14.6.2 值栈中存数据

14.6.2.1 方法1

/* * 把对象放入到值栈中 */ //方法一:先得到root,把一个对象压入到root中 ValueStack valueStack = ActionContext.getContext().getValueStack(); valueStack.getRoot().add(new Person()); valueStack.getRoot().add(new Student()); 运行以后的值栈结构图:

从内存图中可以看出最后被压入到list中的对象在最下面。

图为ArrayList中的add方法的解释: 追加的指定的元素放到集合的最下面。

14.6.2.2 方法2

/* * 方法二:先得到root,利用add(index,Object)把一个对象压入到root中 * 这里index指的是集合中的位置 */ ValueStack valueStack = ActionContext.getContext().getValueStack(); valueStack.getRoot().add(new Person()); valueStack.getRoot().add(0, new Student());

运行后的结构图为:

从图中可以很明显看出新创建的Student对象被放到了第一个位置,因为 Index的值为0,所以是第一个位置。

14.6.2.3 方法3

把一个键值对存放在对象栈中,做法为: /* * 方法三: * 把一个键值对存放在对象栈中 */ ValueStack valueStack = ActionContext.getContext().getValueStack(); valueStack.set(\ 对象栈图为:

从图中可以看出上面的代码执行过程为:

1、 先把”msg”和”msg_object”两个字符串封装成Map 2、 再把封装以后的Map放入到对象栈中。

14.6.2.4 方法4

/* * 方法4 * 利用ValueStack的push方法可以把一个对象直接压入对象栈的第一个位置 */ ValueStack valueStack = ActionContext.getContext().getValueStack(); valueStack.push(new Person());

执行完push方法以后,对象栈的情况如下:

Push方法把新创建的Person对象放入到了对象栈的首个位置。

14.7 OGNL Context

14.7.1 说明

1、 上图为OGNL Context的结构图

2、 当struts2接受一个请求时,会迅速创建ActionContext,ValueStack,action。然后

把action压入到值栈中。所以action的实例变量可以被ognl访问。所以利用ognl表达式可以访问action。

14.8 ActionContext

/* * ActionContext的作用 */ ActionContext.getContext().getSession().put(\ActionContext.getContext().getSession().put(\ValueStack valueStack = ActionContext.getContext().getValueStack(); 14.8.1 说明

从上面的代码中可以看出来,struts2中的ActionContext的作用是提供了对ognl数 据的操作。并且可以通过ActionContext获取到经过struts2封装了的session等参数。

14.9 ServletActionContext

/* * 返回servlet中的request和servletcontext */ ServletActionContext.getRequest().setAttribute(\ServletActionContext.getRequest().setAttribute(\ServletActionContext.getServletContext(); //得到ActionContext ServletActionContext.getContext(); 14.9.1 说明

1、 可以通过ServletActionContext得到servlet中的一些类,比如

HttpServletRequest,ServletContext等

2、 可以通过ServletActionContext返回ActionContext

14.10 Ognl表达式 14.10.1 简述

从9.6到9.9讨论了ognl的结构、如何存数据。9.10重点讨论如何把ognl结构中的数据呈现在页面上。所以Ognl表达式的作用就是把OgnlContext中的数据输出到页面上。

14.10.2 el表达式例子

参照课堂演示例子

14.10.3 ognl表达式例子

14.10.3.1 用法1(#号用法)

说明:

1、 访问OGNL上下文和action上下文,#相当于ActionContext.getContext(); 2、 如果访问的是map中的值而不是对象栈中的值,由于map中的数据不是

根对象,所以在访问时需要添加#前缀。 名称 parameters request 作用 包含当前HTTP请求的Map 包含当前HttpServletRequest属性的Map 包含当前HttpSession属性的Map 包含当前ServletContext属性的Map 用于按照request>session>application顺序访问其属性

注:也可以写为#request[?username?] #sesssion[?username?] #application[?username?]

例子 #parameters.id[0]=request.getParameter(“id”) #request.username=request.getAttribute(“username”); #session.username=session.getAttribute(“username”); #application.username=application.getAttribute(“username”); #attr.username相当于按照顺序在以上三个范围内读取username的属性,直到找到为止。 session application attr

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库struts2(7)在线全文阅读。

struts2(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/589953.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: