重写struts2的TEXT标签对象以实现自己想在标签上增加默认显示内容的功能

本文介绍如何在Struts2框架中扩展自定义标签,包括准备源码、创建相关包及复制必要文件等步骤,并详细讲解了如何添加新属性及修改标签定义文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.准备好STRUTS2的源码

2.struts2中两个与标签相关的package

org.apache.struts2.components : 标签对象所对就的JAVA数据处理对象

org.apache.struts2.views.jsp : 与前台页面标签对应的JAVA端标签对象

在自己项目中src下创建出上面两个package

3.将struts2源码中对应的Text和TextTag复制到自己项目中对应的package下

4.分别在Text和TextTag对象中增加一个成员变量String desc,并访照成员变量name的set方法实现desc的set方法

5.在Text对象的end(Writer,String)方法中的if(msg!=null)前增加语句:msg = (msg==null||msg.length()==0)?desc:msg;

6.修改struts2的tag定义文件,从struts2的JAR包中找到struts-tags.tld并修改name='text'的tag标签,在此标签下增加属性desc,如何设置访照属性var的设置,设置好后保存

7.以上步骤做好后,就可以在自己的项目中使用自己定义的功能了

如:

<s:text name="aa" desc="default" />

解释:首先从struts2的资源文件中查找出key为aa的value值,如果没有定义这KEY或这KEY的值为空,那这时就使用desc定义的默认值显示到页面,如果能正常找到key为aa的值,则正常返回其value值.

此desc属性就是在自己扩展出来的属性,在原来的text标签是没有这属性的.

 

 

总结:

关键文件:

Text(从资源文件找出数据)

TextTag(将找出的数据返回到前台页面)

struts-tags.tld(对页面使用标签的标准定义)

 

最后就是使用标签了...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值