`
kdboy
  • 浏览: 759209 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts常用标签使用介绍

阅读更多
Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。这里仅对项目中常用的Bean标签及Logic标签做一介绍。
Bean标签: 在访问JavaBeans 及其属性,以及定义一个新的bean 时使用
Logic标签: 管理条件产生的输出和对象集产生的循环
在使用标签的时候需注意struts标签不能嵌套使用。可使用<%%>方式替代解决。

标签的一些公共属性:
  1. id 命名自定义标签创建时的脚本变量名。
  2. name   指出关键字值,在该关键字下可以找到一个存在的bean 。如果给出了scope属性,则仅仅在scope中查找。否则,根据标准的顺序在各种scope中查找:(page, request, session, or application)。
  3. property   指出bean 中的某个属性,可以在其中检索值。如果没有标明,则使用对象本身的值。
  4. scope   定义了Bean在哪个范围(page, request, session, or application)中被查找。如果没有标明按顺序查找。脚本变量(见id)将在相同的范围中创建。
一、Bean标签实例说明:

bean:define:有三个用途。我们较多使用为后两者。
一是定义新字符串常量:
<bean:define id="foo" value="This is a new String"/>
<bean:define id="bar" value='<%= "Hello, " + user.getName() %>'/>
<bean:define id="last" scope="session" value='<%= request.getRequestURI() %>'/>
二是复制一个现有的bean给新的bean:
<bean:define id="foo" name="bar"/>   
<bean:define id="baz" name="bop" type="com.mycompany.MyClass"/>  //定义脚本变量的类型,默认为Object
三是复制一个现有的bean的属性给新的bean:
<bean:define id="bop" name="user" property="role[3].name"/>
  <bean:define id="foo" name="bar" property="baz" scope="request"  toScope="session"/>
  //toScope属性指新bean的scope,默认为page  

bean:message:用来实现对国际化的支持的一个标签。
一般使用为:
在资源文件中的定义:info.myKey = Hello
标记的使用:<bean:message key="info.myKey" />
Jsp页面的显示:Hello 
需要参数设置时:
在资源文件中的定义:info.myKey = The numbers entered are {0},{1},{2},{3}
标记的使用:<bean:message key="info.myKey" arg0="5" arg1="6" arg2="7" arg3="8"/>
Jsp页面的显示:The numbers entered are 5,6,7,8  // 最多支持4个参数

bean:write:以字符串形式输出bean的属性值。
filter属性:设为true时,将HTML保留字转换为实体("<" 转换为 &lt);
ignore属性:如果对象不存在,不会抛出异常。
<bean:write name="userRegistration" property="email" scope="request"/>

二、Logic标签实例说明

logic:iterate 标签来迭代集合。

indexId属性:当前访问元素的序号
length属性:指定输出元素的个数
offset属性:指定从第几个元素开始输出
<logic:iterate id="emp" name="empList" indexed="index" length="3" offset="1">
<bean:write name="emp" property="name"/><br>
</logic:iterate>
//该示例表示从第二个元素开始输出,输出三个元素。

logic:empty 该标签是用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。
(logic:notEmpty 标签的应用正好和logic:empty标签相反。为防止空指针,不能确定对象是否为空时,务必首先使用该标签进行判断)
该标签用于以下情况:
1)当Java对象为null时;
2)当String对象为""时;
3)当java.util.Collection对象中的isEmpty()返回true时;
4)当java.util.Map对象中的isEmpty()返回true时。
<logic:empty name="listForm" property = "persons">
<div>集合persons为空!</div>
</logic:empty>

logic:equal 该标签为等于比较符。
<logic:empty name="videoId" value = "3">
<div>videoId=3</div>
</logic:empty>

logic:equal同一系列的标签为
logic:equal(=)
logic:notEqual(!=)
logic:greaterEqual(>=)
logic:lessEqual(<=)
logic:graterThan(>)
logic:lessThan(<)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics