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实例中的属性值