1、迭代取值
<s:iterator id="element" value="#request.pageList.resultList" status="st">
value是取传过来的数据,id是给传过来的数据起个别名,相当于 element = #reqeust.pageList.resultList;
下面的属性就可以<s:property value="#element.roleName"></s:property> 相当于
<s:property value="#request.pageList.resultList.roleName"></s:property>
stauts是当前的状态 st.index是当前的行数 ${st.index}默认从0开始
简单应用:隔行显示不同背景颜色
<tr style="background-color: ${st.index%2==0?'#F0F0F0':'#FFFFFF'}"></tr>
2、几个标签的取值不同
<s:textarea name="role.roleDesc" value="%{role.roleDesc}"></s:textarea> 可以取值
<s:textarea value="#request.role.roleDesc"></s:textarea> 不可以取值
<s:property value="%{role.roleDesc}"/> 可以取值
<s:property value="#request.role.roleDesc"/> 可以取值
用%{ }的形式可以取值不需要加request
用#request的形式也可以取值 但不能应用于<s:textarea>标签
上面都是struts2标记ognl的取值方式
html的 jstl标记的取值方式
value="${role.roleName}"
在js中可以取后台的值,此时的js代码必须写在jsp中,若把js代码抽取成js文件,这种方法不可取
alert("${role.desc}");
3在js中取值和json对象的比较
"${role.Desc}" 如果role.Desc为空 在js中是空字符串"" 如果role为空 在js中也为"";
若desc不是role的属性则会出异常
若是jsonObj(json对象) jsonObj.desc 如果desc在java中放进去的为空取出来为"undefined"
若desc不是jsonObj的属性,也是"undefined",