java学习笔记之-OGNL和Struts2标签

云平台

  struts2标签的优势:

  标签库简化了用户对标签的使用;

  结合OGNL使用,对于集合,对象的访问功能非常强大

  提供可扩展的主题,末班,极大地简化了视图页面的编写

  不依赖任何表现层技术

  Struts2标签的分类:

  通过标签(Generic Tags)

  数据标签(Data Tags)控制标签(Control Tags)UI标签(UI Tags)

  Ajax标签(Ajax Tags)

  数据标签:

  <s:property>:输出指定值

  value:用来获取值的OGNL表达式

  default:value属性返回控制室,如果仍然希望输出某些内容,可使用default来制定这些内容

  escprHtml:是否转义HTML,默认取值true

  <s:debug>:查看值栈以及Stack Context中所有能访问的值

  控制标签:

  <s:if>/<s:elseif>/<s:else>表达分支判断

  test:表示是否符合调减,本身是一个OGNL表达式,运算结果为一个boolean值

  <s:iterator>用来处理循环,循环遍历集合对象

  value:用来指明到底循环的是谁,这个属性的值是一个OGNL表达式

  var:变量名称,用来引用循环的对象

  status:返回当前循环的各种信息

  count:集合含有多少个对象index:返回当前循环的这一项的索引even:当前循环到的对象是不是处于列表的偶数索引位置odd:当前便利到的对象是不是处于列表的技术索引的位置OGNL简介

  你使用过的OGNL

  页面获取并输出Action属性

  <s:property value="userName"/> 页面中获取request保存的数据

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

  OGNL是什么

  Object Graph Navigation Language,对象图导航语言

  是Struts2默认的表达式语言,开源,功能强大

  存取对象的属性,调用对象的方法:访问静态方法和属性

  访问值栈以及Stack Context

  操作集合对象

  赋值,运算操作,字段类型转化等

  OGNL访问值栈

  通过<s:property value="house.title"/>为什么可以获取到房屋的标题信息

  house为Action的属性,Action的实例放在值栈(value Stack)中

  OGNL可以直接访问值栈中的值

  值栈(value Stack)

  存放数据的内存空间

  值栈中存放了Action的实例

  例如:可以通过OGNL来访问Action实例中的属性值

标签: 云平台