`

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>
 
   03. set 字符常量  value=" '测试' "
<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>
  
   03、迭代Map
         创建Map:#{key1value1,key2:value2}
<!-- 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>
 
3.3 if else
<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> 
 
3.4 form
<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"/>
 

3.6在iterator中嵌套struts标签 v.bt

<s:iterator value="#request.otherlist" status="s" var="v">
	<tr onclick="" title="点击查看详细视频">
		<td align="center" class="xxtd">
			<s:if test="bt.length()>19">
    				   <s:property value="bt.substring(0,19)"/>...
    	            	 </s:if>
    	            	 <s:else>
    	                	    <s:property value="bt" />
    	            	 </s:else>
		</td>
	</tr>
</s:iterator>
 4.1 struts2标签处理字符(接收变量要为字符串类型)
长度:<s:property value="rb.rbnr.length()" />
截取:<s:property value="rb.rbnr.substring(0,6)" />
 4.5 时间处理(接收变量要为时间类型)
时间差:<s:property value="#request.time-rb.tjsj.getTime()" />
日报时间:<s:property value="rb.tjsj.getTime()" />
时间戳<s:property value="#request.time" />
<s:if test="rb.rblx == 0 and #request.time-rb.tjsj.getTime()"></s:if>
 
 5、EL中三目运算符
00、struts 三目运算符
<div name="1" class="daan1"  id="${iterm.myStore.id}" style="${statu.index==0?'margin:0; border:0;':'' }">
 
 
 
 
 

 

 

 

 

 

  • 大小: 11.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics