值栈存储结构、实例笔记整理
来源:互联网 发布:unity3d场景模型下载 编辑:程序博客网 时间:2024/06/03 18:14
值栈的存储结构:
临时对象。该对象是在程序执行过程中,由容器自动创建并存储到值栈中。该对象的值并不固定,会随着应用不同而发生变化,当应用结束的时候,对象会被清空。(struts2标签输出迭代的值的时候,这些值都将以临时对象的形式放到值栈中)
模型对象。在action使用模型驱动方式传值的时候被用到。当jsp页面需要用到这些对象所携带的数据时,也会到值栈中去找对应的模型对象,获取数值。
Action对象:当每个action请求到来时候,容器会先创建一个此action的对象并存入值栈中,该对象携带所有与action执行过程有关的信息。
命名对象:主要包括servlet作用范围内相关的对象信息,比如request,session,application。
值栈中对象的遍历顺序
栈顶--临时对象--模型对象--action对象--命名对象
值栈的应用实例:
首先创建book.jsp页面
<s:form action="show.action">
<s:textfield name="book.name" label="输入书名"></s:textfield>
<s:textfield name="book.price" label="输入价格"></s:textfield>
<s:textfield name="book.page" label="输入页数"></s:textfield>
<s:submit value="确定"/>
</s:form>
创建show.jsp页面
<s:debug></s:debug> //创建调试
书名:<s:property value="%{book.name}"/><br/>
价格:<s:property value="book.price"/><br/>
页数:<s:property value="book.page"/><br/>
创建Book实体类:
public class Book {
public Stringname;//发现一个很有趣的事情,这里需要声明为公有的才行,私有的不能访问。
public int price;
public int page;
public String getname() {
return name;
}
public void setname(String name) {
this.name = name;
}
public int getprice() {
return price;
}
public void setprice(int price) {
this.price = price;
}
public int getpage() {
return page;
}
public void setpage(int page) {
this.page = page;
}
}
创建action类
public class BookAction extends ActionSupport {
private Bookbook; //必须要get这个对象,否则报错。同理,在debug调试的时候,有看到已经拿到值,但是就是不能提取出来。
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public String execute()throws Exception{
//System.out.println("book.name:"+book.getName());
//System.out.println("book.price:"+book.getPrice());
return SUCCESS;
}
}
修改struts.xml文件
<package name="show" extends="struts-default" namespace="/">
<action name="show" class="com.neusoft.action.BookAction" >
<result>/show.jsp</result>
</action>
</package>
结果如图:
<s:property value = "userPassword" />
该示例代码使用Struts 2 标签输出了Action实例的userPassword属性的值。
(Action的实例通常压入值栈中。因为Action在值栈中,并且值栈是ognl的根,所以访问Action的属性时可以省略#标记)
-----------------------------------------------------------------------------------------------------------------
而非根对象访问
<s:property value = "#session.mySessionPropKey" />
另外,还可以通过debug标签查看值栈的值
- 值栈存储结构、实例笔记整理
- 笔记整理-存储单位
- C语言模拟栈存储结构笔记
- HBase笔记:存储结构
- HBase笔记:存储结构
- stm32存储结构& 存储器映射(整理)
- stm32存储结构& 存储器映射(整理)
- MySQL存储过程--整理加实例
- 【笔记】图的存储结构
- [转]数据库中的多级结构存储(实例)
- [转]数据库中的多级结构存储(实例)
- [转]数据库中的多级结构存储(实例)
- 学习笔记 栈(一.栈的顺序存储结构)
- Oracle学习笔记(存储结构/内存结构/逻辑结构)
- oracle笔记整理四[物理结构管理]
- C程序设计语言整理笔记(六)结构
- 栈 -- 顺序存储结构
- 栈 -- 链式存储结构
- String,StringBuilder和StringBuffer的异同
- windows下安装tornado
- LeetCode 102. Binary Tree Level Order Traversal(bfs)
- android中用Spannable在TextView中设置超链接、颜色、字体
- OpenWRT(三)支持Web界面
- 值栈存储结构、实例笔记整理
- appium1-macOS10.12下如何丝滑的使用appium?
- 浅度理解JS基本知识
- JDK的命令行工具
- SQL Server 2008 R2开启数据库的远程连接及客户端配置
- 关于RandomAccessFile的问题
- 《软件体系结构》知识点整理
- Java连接数据并进行操作
- 以不自由换自由