Struts常用标签使用介绍

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

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

[b]bean:define:有三个用途。我们较多使用为后两者。[/b]
一是定义新字符串常量:
<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

[b]bean:message:用来实现对国际化的支持的一个标签。[/b]
一般使用为:
在资源文件中的定义: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个参数

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

[color=blue]二、Logic标签实例说明[/color]
[b]
logic:iterate 标签来迭代集合。[/b]
indexId属性:当前访问元素的序号
length属性:指定输出元素的个数
offset属性:指定从第几个元素开始输出
<logic:iterate id="emp" name="empList" indexed="index" length="3" offset="1">
<bean:write name="emp" property="name"/><br>
</logic:iterate>
//该示例表示从第二个元素开始输出,输出三个元素。

[b]logic:empty 该标签是用来判断是否为空的。如果为空,该标签体中嵌入的内容就会被处理。[/b]
(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>

[b]logic:equal 该标签为等于比较符。[/b]
<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(<)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值