Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。这里仅对项目中常用的Bean标签及Logic标签做一介绍。
Bean标签: 在访问JavaBeans 及其属性,以及定义一个新的bean 时使用
Logic标签: 管理条件产生的输出和对象集产生的循环
在使用标签的时候需注意struts标签不能嵌套使用 (也就是说在一个标签的属性中不能写另一个标签)。
标签的一些公共属性:
一、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保留字转换为实体("<" 转换为 <);
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(<)
该文章来源:http://kdboy.iteye.com/blog/212541