只是本人的Struts2学习笔记,关于Value Stack(值栈)和OGNL表达式,把我知道的都说出来,希望对大家有用。

一,值栈的作用

记录处理当前请求的action的数据。

二,小例子

有两个action:Action1和Action2

Action1有两个属性:name和passwd

Action2有两个属性:name2和passwd2

请求从Action1进入,chain方法导向Action2

Struts.xml配置信息:

/p>

"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

"http://struts.apache.org/dtds/struts-2.3.dtd">

action2

/welcome.jsp

welcome.xml:

To change this template use File | Settings | File Templates.

--%>

name:

passwd:

locale:

三,访问

访问的路径:http://localhost:8080/Struts2OGNL/action1?name=nn&passwd=pp

Struts2OGNL是项目名称

下面是值栈截图:

注意到,我们连接中给了的值都已经出现在值栈中了,即name和passwd。还有我们发现这明显是一个栈,谁先调用谁在下面,当我们取值的时候,是从栈顶开始向下搜索,首先找到的那个值就是最终结果。

jsp中取值的方法:

name:

passwd:

locale:

根据名称取值,value是OGNL表达式,即对象图形导航语言,就是根据这个表达式找到一个对象。

如果一个对象的属性有一个类,例如User user,User有name和passwd属性,那么可以这样传参:

http://localhost:8080/Struts2OGNL/action1?user.name=nn&user.passwd=pp

并且可以这样取值:

name:

passwd:

locale:

当然,还可以直接用对象调用方法,例如下面的代码:

其余的用法,看下面这张图,就不一一总结了。这个图是视频中截下来的,以后有问题了来看看,查查,应该就会使用了。

Struts 的详细介绍:请点这里

Struts 的下载地址:请点这里

java值栈_Struts2学习笔记-Value Stack(值栈)和OGNL表达式相关推荐

  1. java 编程思想 多线程学习笔记

    java 编程思想 多线程学习笔记 一.如何创建多线程? 1.继承 java.lang.Thread 类 2.实现 java.lang.Runnable 接口 3.Callable接口 总之,在任何线 ...

  2. JAVA基础与高级学习笔记

    JAVA基础与高级学习笔记 /记录java基础与高级,除了较简单的内容,没有必要记录的没有记录外,其余的都记录了/ java初学者看这一篇就够了,全文 6万+ 字. JAVA基础 java会出现内存溢 ...

  3. Java 8 函数式编程学习笔记

    Java 8 函数式编程学习笔记 @(JAVASE)[java8, 函数式编程, lambda] Java 8 函数式编程学习笔记 参考内容 Java 8中重要的函数接口 扩展函数接口 常用的流操作 ...

  4. 【Java】函数式编程学习笔记——Stream流

    学习视频:https://www.bilibili.com/video/BV1Gh41187uR?p=1 (1)[Java]函数式编程学习笔记--Lambda表达式 (2)[Java]函数式编程学习笔 ...

  5. 【小猫爪】AUTOSAR学习笔记10-Communication Stack之CanTsyn模块

    [小猫爪]AUTOSAR学习笔记10-Communication Stack之CanTsyn模块 前言 1 时间同步的引入 2 时间同步的角色 3 时间同步过程 3.1 四种报文 3.2 时间同步过程 ...

  6. 【小猫爪】AUTOSAR学习笔记02-Communication Stack简介

    [小猫爪]AUTOSAR学习笔记02-Communication Stack简介 前言 1 简介 2 CAN消息的传播路径 2.1 Com服务 2.2 Dcm服务 2.3 SM服务和NM服务 3 补充 ...

  7. 【小猫爪】AUTOSAR学习笔记06-Communication Stack之ComM模块

    [小猫爪]AUTOSAR学习笔记06-Communication Stack之ComM模块 前言 1 ComM简介 2 ComM功能介绍 2.1 PNC 状态管理 2.2 Channel状态管理 2. ...

  8. 【小猫爪】AUTOSAR学习笔记16-Memory Stack之Nvm模块

    [小猫爪]AUTOSAR学习笔记16-Memory Stack之Nvm模块 前言 1 Memory Stack结构 2 NvM模块 2.1 Block 2.2 数据结构 2.3 Redundant B ...

  9. Java并发编程艺术学习笔记(五)

    Java并发编程艺术学习笔记(五) Java并发容器和框架 Java为开发者也提供了许多开发容器和框架,可以从每节的原理分析来学习其中精妙的并发程序. 一.ConcurrentHashMap的实现原理 ...

最新文章

  1. reporting Server組件不全引起的致命錯誤
  2. 手机如何看python代码_python如何绘制iPhone手机图案?(代码示例)
  3. putty ubuntu服务器 上传文件,教你如何使用PuTTY上传文件?
  4. 正则化方法:防止过拟合,提高泛化能力
  5. python(matplotlib5)——Contours 等高线图
  6. spring自定义标签实现
  7. 零基础:邪恶带你3步快速掌握iSCSI搭建
  8. Kudu :主键冲突 status=Already present: key already present
  9. 树莓派linux i2c通信,树莓派与i2c设备的通信
  10. MySQL03:DML语言
  11. GET和POST请求是一个字典
  12. ecshop怎样在新主页模板里调用首页主广告
  13. 在java中产生随机数_在Java中产生随机数的两个方法
  14. CentOS 配置网络yum源
  15. 模拟百度搜索框,输入时显示历史记录
  16. 【爬虫】python爬取微信公众号
  17. 汉语词性对照表[北大标准/中科院标准]
  18. python 文件操作OS总结
  19. 沈理工大学计算机设计专业,沈理工学子在全国大学生计算机设计竞赛中喜获佳绩...
  20. 如何从零基础入门并精通PS?PS如何快速入门?

热门文章

  1. html-网页基本标签
  2. 既有 HTTP ,为啥用 RPC 进行服务调用?
  3. python numpy sum函数,numpy.sum()的使用详解
  4. rubymine 保存成unix格式_如何免费在线试用 200+ Linux 和 Unix 发行版?
  5. git status查看文件的状态
  6. C语言 __TIME__ - C语言零基础入门教程
  7. shellcraft新姿势
  8. php $app-run(),Thinkphp 5.x 应用启动 App::run()
  9. 娄底八中的初中计算机考试,众人同心勤耕耘 敢叫日月换新天
  10. 如何备份数据_如何通过归档、备份和灾难恢复实现多云数据保护