博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2的Stack Context和ValueStack
阅读量:4360 次
发布时间:2019-06-07

本文共 1507 字,大约阅读时间需要 5 分钟。

1、提到Struts2的传值功能时,经常会见到Stack Context和Value Stack,不理解的话很容易晕掉。

  •       ValueStack(值栈):Struts2将OGNL上下文设置为Struts2中的ActionContext(内部使用的仍然是

OgnlContext),并将值栈设为OGNL的根对象。

  •       StackContext(map):stack上下文,它包含一系列对象,包括request、session、attr、applicationmap等。

2、访问Stack Context中的对象的属性时要使用"#对象名.属性名"的方式,

使用push标签可以将原来位于StackContext中的对象放到ValueStack的栈顶。

用push标签将对象保存在ValueStack的栈顶后,只需要使用"属性名"就可以直接访问了。

如下面的例子:

1  2  
3
4
5
6
7
8
9
10
11
12
13
14
15
16
用户信息
用户名:
密码:

 

 使用push标签,简化值的访问
 

1 
2
3
4
5
6
7
8
9
10
11
12
用户信息
用户名:
密码:
13
14

 

3、如果ValueStack栈顶是集合对象的话,通常可以用iterator标签取得位于ValueStack的顶端的集合对象,

遍历集合并输出,遍历完成后集合对象会被移出ValueStack。

 

4、在页面输出ValueStack和Stack Context的方法

  只要在<body>标签中加入<s:debug/>,运行时就可以生成相应的链接,点击该链接就可以显示stack相关信息。

 

6、在jsp中用OGNL表达式获取不同范围的值

    6.1获取地址后面的参数信息(即上海)(=上海)的方法如下:

   <s:property value="parameters.address"/>

    6.2获取上述request中信息的方法如下:

   <s:property value="#request.address"/>

    6.3获取上述session中信息的方法如下:

   <s:property value="#session.address"/>

    6.4获取上述application中信息的方法如下:

   <s:property value="#application.address"/>

    6.5使用"#attr.参数名"的方法访问各种变量的顺序是:

   request>session>application 

转载于:https://www.cnblogs.com/ahudyan-forever/p/5890557.html

你可能感兴趣的文章
存储过程 <3> 和函数的区别
查看>>
高级service之ipc ADIL用法
查看>>
Django框架-基础篇
查看>>
Leetcode: Binary Tree Maximum Path Sum
查看>>
通过虚拟环境创建并开始一个django
查看>>
关于 input[type="button"] , button
查看>>
Android ViewDragHelper全然解析 自己定义ViewGroup神器
查看>>
微信遇到的几个小问题
查看>>
c++ 基础 const char* 转 char*
查看>>
usaco-2.1-hamming-pass
查看>>
使用Spring Boot开发Web项目(二)之添加HTTPS支持
查看>>
2014年工作中遇到的20个问题:1-20
查看>>
热烈庆祝UE4完全免费Free---GitHub上源码的关联方法
查看>>
题目1207:质因数的个数
查看>>
A - Goldbach's Conjecture
查看>>
px转rem
查看>>
forbidden
查看>>
梦断代码阅读笔记02
查看>>
C# String
查看>>
洛谷P5160 WD与循环
查看>>