`

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
分享到:
评论

相关推荐

    ongl表达式

    2. **JSP标签库**:Struts提供了一系列的JSP标签,如`s:textfield`、`s:textarea`等,这些标签内部使用ONGL表达式处理数据。 3. **国际化**:在资源文件中定义国际化字符串,ONGL表达式可以引用这些字符串,实现...

    ONGL表达式

    ONGL表达式,不解释,需要的就下吧,很全面的一份资料,看了就知道了

    struts2中ongl表达式的使用和具体实例应用

    通过上述介绍可以看出,OGNL在Struts2框架中扮演着重要的角色,不仅提供了强大的数据访问能力,而且还具备灵活多变的表达式构造方式,极大地提升了开发效率和代码的可维护性。对于深入理解和掌握Struts2框架而言,...

    struts2 ongl包源码

    这个压缩包包含了Struts2中的ONGL包源码,对于理解Struts2的工作原理和深入学习OGNL的使用非常有帮助。 OGNL是Object-Graph Navigation Language的缩写,它的主要功能是在对象图中导航并执行操作。在Struts2中,...

    struts2中的ongl表达式相关简介

    OGNL(Object-Graph Navigation Language,对象图导航语言)是Struts 2框架的默认表达式语言,它极大地增强了Struts 2的数据访问能力和代码简洁性。OGNL不仅能够通过简单的表达式访问Java对象的属性,而且还可以用于...

    Java struts2 ongl 标签 jsp页面

    Java Struts2 OGNL(Object-Graph Navigation Language)标签是用于在JSP页面中动态地访问和操作Java对象的强大工具。以下是对这些知识点的详细解释: 1. **对象树的访问**: OGNL允许开发者通过点号(`.`)来遍历...

    struts2标签库例子

    Struts2 标签库详解 Struts2 提供了一个强大的标签库,用于简化 Web 应用程序的开发过程。这些标签可以分为两类:通用标签和 UI 标签。下面,我们将详细介绍 Struts2 标签库的使用。 4.1 通用标签 通用标签用来...

    el和ongl表达式学习

    在IT行业中,EL(Expression Language)和OGNL(Object-Graph Navigation Language)是两种常见的表达式语言,它们在Web开发中扮演着重要角色,尤其是在Java EE和Spring框架中。这两种语言都用于简化数据绑定和...

    struts2 OGNL 表达式及各种标签的使用

    Struts2 OGNL(Object-Graph ...通过理解并熟练运用OGNL表达式和相关标签,开发者可以更高效地构建Struts2应用程序,实现数据的灵活绑定和交互。同时,了解其潜在的安全风险并采取相应措施是保障应用程序安全的关键。

    INTERNET基础应用教案.doc编程资料

    INTERNET基础应用教案.doc

    Struts2标签集锦(附Struts2标签详解word文档)

    在实际使用中,Struts2标签的灵活性和便利性体现在数据绑定上,它可以直接与Action类的属性进行交互,无需繁琐的EL表达式。例如,`&lt;s:textfield name="username"&gt;`会自动找到对应的Action中的`username`属性,并将...

    Struts2标签使用及API文档

    - **OGNL表达式**:在Struts2标签中广泛使用,可以用来访问Action的属性,如`s:property value="%{user.name}"`。 - **标签组合使用**:通过组合多个标签,可以实现复杂的业务逻辑和界面渲染。 6. **最佳实践** ...

    struts2标签使用方法

    Struts2是一个强大的MVC框架,它极大...通过熟练掌握Struts2标签的使用和EL表达式,可以显著提升开发效率,同时使Web应用的视图层更加整洁和易于维护。不断实践和理解这些知识点,将成为开发高质量Java Web应用的基础。

    OGNL表达式struts2标签

    2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路)]@[方法名 | 值名],例如: @java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME; 3、支持赋值操作和表达式串联,...

    struts2标签解析

    Struts2框架的标签库基于OGNL(Object-Graph Navigation Language)表达式语言,使得在JSP页面中处理业务数据和控制流程变得更加方便。下面将详细介绍几个常用且相对复杂的Struts2标签。 1. `s:textfield`: 这个标签...

    struts2-tags-API,struts2标签api

    `struts2-tags-API`就是这样一个资源,它包含了Struts2标签API的详细文档,帮助开发者理解和使用这些标签。 一、Struts2标签概述 Struts2标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列预定义的标签,...

    struts2标签大全

    Struts2是一个强大的MVC框架,它极大地简化了Java Web应用程序的开发。...了解并熟练运用这些标签,是成为一名合格的Struts2开发者的关键步骤。在实际工作中,可以根据需求灵活组合使用,实现丰富的页面交互和功能。

    struts2标签和OGNL表达式.pdf

    OGNL(Object-Graph Navigation Language)是一种功能强大的表达式语言,用于获取和设置Java对象的属性,它广泛应用于Struts2框架中用于数据访问和表达式的解析。OGNL表达式提供了简洁的语法来访问和操作对象图,...

    教案第五章struts2的标签库.pdf

    与 Struts 1 相比,Struts 2 标签库使用 OGNL 表达式作为基础,提供了更加强大的功能,例如访问集合和对象的能力。 Struts 2 标签库的特点包括: 1. 统一的标签库:Struts 2 将所有的标签都统一到了一个标签库下,...

Global site tag (gtag.js) - Google Analytics