特点 常用来访问值栈里对象属性的一种语言
通常由struts标签来解析执行 <%@ taglib prefix="s" uri="/struts-tags"%>
值栈 特点 ValueStack
栈的特点:后入先出
内容 对象栈 存放action的实例及相关对象
Map栈 存放封装web资源的Map对象 application,session,request,parameter
attr 通用属性,按照request,session,application的顺序查找属性值
实际上是ActionCont的引用
API 通过 ActionContext 对象的 getValueStack() 获取值栈对象
方法 push(Object) 把对象压入对象栈的顶部
pop() 移除对象栈的顶部对象(类似删除)
peek() 得到对象栈顶部的对象(类似get)
访问方式
struts标签 <s:property value=""/> 只输出<s:property/>会输出栈顶的对象
访问对象栈 <s:property value="属性名"/> 按先后顺序匹配属性名,只输出找到的第一个
可定义起始位置 value="[索引]['属性名']" (索引值从0开始)
value="[索引].属性名"
访问Map栈 <s:property value="#作用域.key"/> 如果作用域=attr,按照request,session,application的顺序查找属性值
访问对象的方法 value=“[起始索引].方法名(参数列表)” 实例方法
访问类的静态方法和属性 value=“@全类名@方法名(参数列表)”
value=“@全类名@静态属性名(参数列表)” 静态方法和属性,默认不允许访问,要在struts里打开
打开的语句<constant name="struts.ogrl.allowStaticMethodAccess" value="true"></constant>
访问对象的集合属性 输出集合内容 value=“[起始索引].集合属性名”
访问集合单元 数组和List value=“[起始索引].集合属性名[索引]”
Map value=“[起始索引].集合属性名[‘key’]”
获取集合长度 数组 value=“[起始索引].集合属性名.lenght”
List和Map value=“[起始索引].集合属性名.size”
判断内容是否为空 value=“[起始索引].集合属性名.isEmpty”
使用EL 访问对象栈 ${属性名} 按先后顺序匹配属性名,只输出找到的第一个,不能定义查找的起始位置
访问Map栈 ${作用域.属性名}