`

Struts2标签库总结

阅读更多
<%@ taglib uri="/struts-tags" prefix="s"%>  

1.
<s:if></s:if>标签对,<s:elseif></s:elseif>标签对,<s:else></s:else>标签对  
<s:if test="#user.age < 0">没这年龄</s:if>  
<s:elseif test="#user.age < 20">太小</s:elseif>  
<s:else>行</s:else>  

2.
<s:iterator/></s:iterator>这个标签,可以遍历list,set,map,数组等。 
在使用<s:iterator/>标签的时候有三个属性值得我们关注:
1). value属性:可选的属性,value属性是指一个被迭代的集合,使用ognl表达式指定,如果为空的话默认就是ValueStack栈顶的集合.
2).id属性:可选属性, 是指集合元素的id
3).status属性:可选属性,该属性在迭代时会产生一个IteratorStatus对象,该对象可以判断当前元素的位置,包含了以下属性方法:
int getCount(); 迭代元素个数
int getIndex(); 迭代元素当前索引
boolean getFirst(); 是否为第一个
boolean getEven(); 是否为偶
boolean getLast(); 是否最后一个
bolean getOdd();   是否为奇 

 遍历 List,数组 篇  
 <s:iterator value="{'a', 'b', 'c'}">  
   <s:property />  
 </s:iterator>  
 value:放置一个集合,直接把<s:property />嵌进去,它就会遍历出来了。
  
 <s:iterator value="{'a', 'b', 'c'}" var="x">  
   <s:property value="#x.toUpperCase()" />  
 </s:iterator>  
 var:把遍历出来的对象,存放进 var 声明的 key 里,它会被放进 Stack Context,所谓遍历,一般都用这方法。  

 <s:iterator value="{'a', 'b', 'c'}" status="status">  
   <s:property value="#status.count" />  <!-- 显示遍历过对象的总数 -->  
   <s:property value="#status.index" /><!-- 遍历当前对象的索引下标 -->  
  <s:property value="#status.even" />  <!-- 当前遍历的对象是否为偶数个?注意,不是以 index 为基准,而是以 count 为基准 -->  
 <s:property value="#status.odd" /><!-- 当前遍历的对象是否为奇数个? -->  
 <s:property value="#status.first" /><!-- 当前遍历的对象是否为第一个元素?-->  
   <s:property value="#status.last" />  <!-- 当前遍历的对象是否为最后一个元素? -->  
 </s:iterator>  

 遍历 Map 篇  
 <s:iterator value="#{1:'a', 2:'b', 3:'c'}">  
   <s:property value="key" /><s:property value="value" /><br />  
</s:iterator>  
 value:这儿是一个 Map,所以用<s:property>可以提出 key 和 value信息。  
 <s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="user">  
   <s:property value="#user.key" /><s:property value="#user.value" /><br />  
 </s:iterator>  
3.   
 <s:subset></s:subset>标签对,这个标签主要是从大集合里获取小集合。  
 <s:subset source="users" count="5" start="3">  
   <s:iterator>  
     <s:property />  
   </s:iterator>  
 </s:subset>  
 source:一个集合  
 count:截取的总数  
 start:从哪个下标开始截取  
4.  
 <s:debug />标签  
 <s:debug />  
 这个标签是专门用于调试用,它会出现一个 [Debug] 按钮,点击后会显示错误信息,请放在 Error 页面。  
5.  
 <s:property />标签  
 <s:property value="errors" default="默认值" />  
 这个标签可以取 Value Stack Contents 和 Stack Context 里的信息,把信息直接显示在页面上,此标签和 OGNL 配合,功能强大。  
defalt:如果 value 属性取不到值,就掉用到 default 的值。  
 <s:property value="<hr />" escape="false" />  
 escape:默认值为true,会把 value 里的字符串解析,如果设置为 false,就不解析,按照 HTML 原样输出。  
 <s:property value="'x'" />  
 有个麻烦事,就是 property 直接输出字符串,而不是把 value 值当成 OGNL,想这么做,就把想要输出的字符串加上单引号吧! '-_-'  
6.
 <s:text name="login.userName">  
   <s:param value="userName" />  
 </s:text>  
 <s:text>的 name:用于国际化,取出 properties 里对应 key 的 value 
7. 
 <s:param>的 value:用于向 properties 文件内的占位符 {0} 传值,它取的是 Action 内定义好的属性。
8.  
 <s:fielderror />标签  
 <s:fielderror fieldName="name" />  
 fieldName:对应一个继承了 ActionSupport 的类,使用 this.addFieldError("name", "Name is error!"),再在跳转后的页面使用 <s:fielderror> 标签,就可以显示 addFieldError 里的信息。  
这个标签自动生成 <li> 代码,但是有替代方案。  
 <s:property value="fieldErrors.error[0]" />  
9.   
 <s:set /> 标签,往这个标签里放东西,它会把东西放在 Stack Context(也称为ActionContext) 里,还会放在 request 里。纳闷的是,request 也是在 Stack Context 里,而且用 <s:debug /> 还看不到 request 里有这么一个键值对。  
 <s:set var="name" value="roy" />  
 var:键  
 value:值,值得注意的是这个值,会被 <s:property /> 优先当做 OGNL 来取值  
   上面这个标签的取值方式如下  
   <s:property value="#name" />  
   <s:property value="#request.name" />  
 <s:set var="name" value="roy" scope="page" />  
   <%=pageContext.getAttribute("name")  %>  
   这种写法,用 #号 就取不到了。  
10.   
 <s:bean></s:bean>标签对  
 <s:bean var="user" name="com.roy.www.dto.User" />  
   <s:param name="userName" value="'Roy'" />  <!-- name:对象内的属性;value:赋值,注意加单引号,否则当成 OGNL -->  
 </s:bean>  
 var:在 Stack Context 里的键  
 name:类的完整路径  
 取值:<s:property value="#user.userName" />  
11.   
 <s:include value="/xxx.html" />  
 这个标签基本不用,用 <%@include file="/xxx.html" %> 就OK了。  
 <s:include value="%{#includeKey}" />  
 如楼上写法,这标签会跑到 Stack Context 里去找值。
分享到:
评论

相关推荐

    struts1标签库运用总结

    对struts1的标签库进行总结,可以熟悉对struts1标签库的运用,更好的熟悉struts1编程

    struts标签库总结

    提供struts1.x中标签的总结,包括标签中属性代表的含义等。这是我积累经验后总结的,希望和我一样热爱编程的朋友们能好好利用~

    struts1标签库

    struts标签库 文章目录 bean:cookie 2 bean:define 3 bean:header 4 bean:include 5 bean:message 5 bean:page 7 bean:parameter 7 bean:resource 8 bean:size 8 bean:struts 9 bean:write 9 html:base 10 ...

    struts2.0 taglib 标签库

    struts2.0 taglib struts2.0 标签库,总结了从的全部

    struts2的复习

    struts2的只是复习点,同学总结的,进攻参考的

    Struts标签资料(Struts标签大全)

    其中包含Struts标签大全 jsp Struts之HTML标签库详解 struts框架bean,html,logic标签手册等内容。不错,其中的JSP Struts之HTML标签库详解 .doc是朋友总结的。不错!

    工作5年J2EE经验文档总结

    工作5年J2EE经验文档总结, 文档包括69个J2EE相关文档 Extjs学习笔记 hibernate总结 J2EE经验总结 j2ee学习总结 ...struts2标签库总结 Spring_AOP_学习小结 自己总结的spring 等几十个总结大全

    struts学习总结.zip

    欢迎访问我的博客:... [struts-tag]---&gt; 有关struts的标签库代码 3:struts源代码.zip 是struts的源代码,希望对想深入研究struts的朋友有所帮助。 3:源代码.zip 是我学习的时候参看的一些代码。

    Struts2技术手册-Struts2精华教程-电子书

    本书内容非常全面,涵盖了众多书籍所有知识要点,并结合作者自己经验总结而编写,内容相当丰富,是查找技术的好帮手及学习Struts2的不二选择 众所周知,一般书籍为了销售需要,往往很少的知识点,却需要添加大量的...

    JSP自定义标签Taglib实现过程重点总结

    除了struts的标签库,我们常见还有jstl标签库。 这样在界面jsp中引入其中的标签库或者标签库文件,然后才可以正常使用其中定义的标签。 代码如下:&lt;&#37;@ taglib prefix =”bean” uri= ...

    Struts原理、开发及项目实施

    12 &lt;br/&gt;1、 摘要 2、 关键词 3、 Framework 4、 Struts的起源 5、 Struts工作原理 6、 Struts安装 7、 一个实例 8、 Struts优缺点 9、 Struts项目实施经验 10、 总结 ...

    SSH 项目框架搭建总结

    jstl:java的标准标签库 junit:测试用到的jar包 spring:使用spring的jar包 struts2:使用struts2的jar包 * 项目体系分层: cn.itcast.elec.containner:自定义的spring容器,用于在控制层调用操作业务层 ...

    Java语言基础下载

    标签库指令 593 脚本元素 593 动作元素 597 &lt;jsp:include&gt; 598 JSP内置对象 605 Session和Application对象 610 JSP的汉字问题的原理 611 自定义标签 613 标准标签的使用 618 内容总结 621 独立实战 622 第三十章:...

    java-ee电子商城系统课程设计.doc

    Struts 是目前创建Web 应用最常用的表现层MVC 框架实现,基于Model2 的Struts 框架利用控制器和定制标签库将应用中的模型和视图分离,达到了层间松散耦合的效果 ,同时提高系统的灵活性、重用性和维护性。...

    freemarker总结

    JAVA模版引擎Freemarker常用标签(一) 1. if指令 这是一个典型的分支控制指令,该指令的作用完全类似于Java语言中的if,if指令的语法格式如下: &lt;#if condition&gt;... &lt;#elseif condition&gt;... &lt;#elseif condition&gt;......

    Jsp汽车租赁信息管理系统 技术文档.rar

    开发人员可以更加有针对性地分析应用需求,不必重新设计框架,只需在Struct框架的基础上,设计MVC各个模块包含的具体组件,在编码过程中,可以充分利用Struct提供的各种实用类和标签库,简化编码工作。  Struct框架...

    java 面试题 总结

    2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类...

    Spring中文帮助文档

    2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文...

    Spring API

    2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文...

    java面试题及技巧3

    │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科面试题.pdf │ 速算.txt │ 面试题URL.txt │ ├─Javascript │ │ javascript资料(源码,教材,ppt).rar │ │ │ └─javascript资料...

Global site tag (gtag.js) - Google Analytics