在没有迭代标签的时候,如果要循环输出内容到网页,我们往往这样做:
<%
While(iterator.hasNext())
{
SomeObject obj = (SomeObject)iterator.Next();
out.println(obj.getComeValue());
}
%>
While(iterator.hasNext())
{
SomeObject obj = (SomeObject)iterator.Next();
out.println(obj.getComeValue());
}
%>
上面的while就是一个迭代,如果我们要开发出这样的标签,一般需要二个开发类,一具类实现BodyTagSupport接口,另一个类扩展TagExtraInfo类。TagExtraInfo旨在提供标签运行时的信息。下面来做个实例<
一.Struts本来有<bean:write>标签,对其类StringTag进行扩展
我觉得在读数据的时候截取标题的长度有一些不妥当,我刚才试图写了一个很简单的自定义标签,在struts中有这样一个标签<bean:write name="article" property="title"/>上面标签的意思是读取article对象中的title属性的值,现在对title的长度要求限制在一定范围之内,定义此标签的类是org.apache.struts.taglib.bean.WriteTag如果对这个类扩展,加一个属性cut ,再根据cut的大小来截取标题的长度,我对WriteTag继承,重写doStartTag(), package org.apache.struts.taglib.bean; //注意,要这样写,不然会出错的
我觉得在读数据的时候截取标题的长度有一些不妥当,我刚才试图写了一个很简单的自定义标签,在struts中有这样一个标签<bean:write name="article" property="title"/>上面标签的意思是读取article对象中的title属性的值,现在对title的长度要求限制在一定范围之内,定义此标签的类是org.apache.struts.taglib.bean.WriteTag如果对这个类扩展,加一个属性cut ,再根据cut的大小来截取标题的长度,我对WriteTag继承,重写doStartTag(), package org.apache.struts.taglib.bean; //注意,要这样写,不然会出错的
复制内容到剪贴板 程序代码
StringTag extends WriteTag{....
public String setValue(String value) {
String tempProperty=value;
if(cut>0){
if(tempProperty.length()>=(cut+1)){
tempProperty=tempProperty.substring(0, cut) +"..."; }
}
public String setValue(String value) {
String tempProperty=value;
if(cut>0){
if(tempProperty.length()>=(cut+1)){
tempProperty=tempProperty.substring(0, cut) +"..."; }
}
Tags: bean:write 标签 自定义 自定义标签