源:http://bbs.csdn.net/topics/210040287
评:
给你个标签的例子自己看看吧!
标签:<framework:VoucherCodeToName code="" />
tld.xml
<tag>
<name>VoucherCodeToName</name>
<tagclass>com.itown.crm.fee.vouchermanager.util.VoucherCodeToNameTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>code</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
VoucherCodeToNameTag.java
package com.itown.crm.fee.vouchermanager.util; import java.util.ArrayList; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.TagSupport; import org.apache.commons.lang.StringUtils; import org.apache.taglibs.standard.tag.el.core.ExpressionUtil; import com.itown.crm.fee.vouchermanager.po.FeeVoucherInfo; import com.itown.crm.util.DaoUtil; import com.itown.framework.persistence.CachedRowSet; import com.itown.util.ormapping.BeanHelper; public class VoucherCodeToNameTag extends TagSupport { protected String code = ""; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public int doStartTag() throws JspException { //解析表达式 evaluateExpressions(); //如果属性值为NUll或者为"",则不进行转换 if(StringUtils.isBlank(code)) { return super.doStartTag(); } try { String name = null; StringBuffer sql = new StringBuffer(); sql.append("select * from FEE_VOUCHER_INFO where VOUCHER_ID='"); sql.append(code); sql.append("'"); CachedRowSet rs = DaoUtil.executeQuery(sql.toString()); ArrayList list = BeanHelper.mapBeansByRS(rs, FeeVoucherInfo.class); if(list.size() > 0){ name = ((FeeVoucherInfo)list.get(0)).getVoucherName(); } this.pageContext.getOut().print(StringUtils.trimToEmpty(name)); } catch (Exception e) { e.printStackTrace(); } return SKIP_BODY; } private void evaluateExpressions() { try { code = (String) ExpressionUtil.evalNotNull("VoucherCodeToName", "code", code, java.lang.Object.class, this, pageContext); //第一个参数为这个标签的名称 } catch(Exception ex) { code = null; } } }