源: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; ????????} } }
?