ONGL表达式跟Struts2标签的运用
ONGL 表达式和Struts2标签的运用
1、 struts2的 ONGL 表达式只能使用在 struts2 的标签中
2、 Struts2的 ONGL 表达式支持 EL 表达式
3、 示例参考
3.1 <s:set>标签
01.set list
<s:set var/name="list" value="{'a','b','c','d'}" scope="request"></s:set>list被默认存放于request域中
02. set map
<s:set name="myMap" value="#{1:'老李',2:'老张',3:'老赵',4:'老王'}"></s:set>
<s:set name="test" value=" '测试' " />
<s:iterator value="page.result" status="s" var="u"> <tr> <td nowrap="nowrap">${requestScope.u.dwmc} </td> <td nowrap="nowrap"><s:property value="#request.u.dwjc"/></td> <td nowrap="nowrap"><a href="admin/Unit/Unit_update.action?dwid=<s:property value="%{page.curPage+1}" />">编辑</a></td> <td nowrap="nowrap"> <a href="admin/Unit_delete.action?dwid=${u.dwid}">删除</a></td> <td nowrap="nowrap"> </td> </tr> </s:iterator >
3.2 <s:iterator>
简述:value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。
id:可选属性,指定集合里元素的id。
status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:
int getCount(),返回当前迭代了几个元素。
int getIndex(),返回当前迭代元素的索引。
boolean isEven(),返回当前被迭代元素的索引是否是偶数
boolean isOdd(),返回当前被迭代元素的索引是否是奇数
boolean isFirst(),返回当前被迭代元素是否是第一个元素。
boolean isLast(),返回当前被迭代元素是否是最后一个元素。
var:从集合中迭代出的元素
01、
<s:iterator value="page.result" status="s" var="u"> <tr> <td nowrap="nowrap">${requestScope.u.dwmc} </td> <td nowrap="nowrap"><s:property value="#request.u.dwjc"/></td> <td nowrap="nowrap"><a href="admin/Unit/Unit_update.action?dwid=<s:property value="%{page.curPage+1}" />">编辑</a></td> <td nowrap="nowrap"> <a href="admin/Unit_delete.action?dwid=${u.dwid}">删除</a></td> <td nowrap="nowrap"> </td> </tr> </s:iterator >
在<s:iterator> 中, var 被放在了 request 域中,两种访问形势
${requestScope.u.dwmc} #request.u.dwjc
02、迭代list
<!-- 设置set集合 value--> <!-- status 可选属性,该属性指定迭代时的IteratorStatus实例 --> <!-- value="#attr.list" list存放到了request中 可以value="#request.list" statu.odd返回当前被迭代元素的索引是否是奇数 --> <s:set name="list" value="{'a','b','c','d'}"></s:set> <s:iterator var="ent" value="#request.list" status="statu"> <s:if test="%{#statu.odd}"> <font color="red"><s:property value="#ent" /> </font> </s:if> <s:else> <s:property value="#ent" /> </s:else> </s:iterator>
<!-- map集合的特点: 语法格式:# {key:value,key1:value1,key2:value2,.....} 以上的语法中就直接生成了一个Map类型的集合,该Map对象中的每个key-value对象之间用英文的冒号隔开, 多个元素之间用逗号分隔。 --> <s:set var="map" value="#{'1':'laowang','2':'老王','3':'猩猩'}"></s:set> <s:iterator value="#map"> <s:property value="key" />:::<s:property value="value" /> </s:iterator>
<s:set name="age" value="21" /> <s:if test="#age==23"> 23 </s:if> <s:elseif test="#age==21"> 21 </s:elseif> <s:else> 都不等 </s:else>
<h1>form表单</h1> <s:form action="test" namespace="/tag"> <s:textfield label="用户名" name="uname" tooltip="你的名字" javascriptTooltip="false"></s:textfield> <s:textarea name="rmake" cols="40" rows="20" tooltipDelay="300" tooltip="hi" label="备注" javascriptTooltip="true"></s:textarea> <s:password label="密码" name="upass"></s:password> <s:file name="file" label="上传文件"></s:file> <s:hidden name="id" value="1"></s:hidden> <!-- <select name="edu"> <option value="listKey">listValue</option> --> <s:select list="#{'1':'博士','2':'硕士'}" name="edu" label="学历" listKey="key" listValue="value"></s:select> <s:select list="{'java','.net'}" value="java"></s:select><!-- value是选中的 --> <!-- 必须有name --> <s:checkbox label="爱好 " fieldValue="true" name="checkboxFiled1"></s:checkbox> <!-- 多个checkbox --> <s:checkboxlist list="{'java','css','html','struts2'}" label="喜欢的编程语言" name="box" value="{'css','struts2'}"></s:checkboxlist> <!-- map集合前要加# --> <s:checkboxlist list="#{1:'java',2:'css',3:'html',4:'struts2',5:'spring'}" label="喜欢的编程语言" name="boxs" value="{1,2}"></s:checkboxlist> <!-- listKey listValue <input type="text" name="boxs" value="listKey">显示值listValue --> <!-- radio --> <% //从服务器传过来值 pageContext.setAttribute("sex","男",PageContext.REQUEST_SCOPE); pageContext.setAttribute("sex1","男",PageContext.REQUEST_SCOPE); %> <s:radio list="{'男','女'}" name="sex" value="#request.sex"></s:radio> <s:radio list="#{1:'男',2:'女'}" name="sex1" listKey="key" listValue="value" value="#request.sex1"></s:radio> <!-- 防止表单提交的方式 --> <s:token></s:token> <s:submit value="提交"></s:submit> </s:form>
3.5 时间格式化标签<s:date name=" " format="yyyy-MM-dd" />
<!--出生年月格式化1989-07-08--> <s:date name="user.csny" format="yyyy-MM-dd"/>