您的位置:首页 > 编程语言 > Java开发

java enum 结合jstl自定义标签做展示

2011-03-10 15:53 651 查看
Java Enum 学习篇:
http://blog.csdn.net/abing37/archive/2009/07/29/4391222.aspx

 

    以前做项目都是使用final Static定义状态,这样做也能满足要求,当状态码发生改变的时候只需改一处地方,刚才听同事说可以使用enum来定义常量,更加优雅,所以决定学习下。上面这篇博客介绍了enum的入门和原理,我将把同事做的jstl自定义标签展示出来,积累下知识

 

  1.定义enum-HvProcStateEnum

 

public enum HvProcStateEnum {

TOCHECK("90","待复核"),TOUPDATE("93","待修改"),TOGRANT("92","待授权"),
TOSEND("03","待发送"),SENDED("04","已发送"),APIOK("05","API成功"),
APIFAIL("06","AIP拒绝"); //.................其他暂略

private String code;
private String descript;

private HvProcStateEnum(String code,String descript){
this.code = code;
this.descript = descript;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getDescript() {
return descript;
}
public void setDescript(String descript) {
this.descript = descript;
}

}
 

2.state.tld

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0">

<tlib-version>1.1</tlib-version>
<short-name>state</short-name>
<uri>/test.state</uri>

<function>
<description>大额往账汇兑业务中文处理状态</description>
<name>hvsendproc</name>
<function-class>com.test.util.StateUtil</function-class>
<function-signature>
java.lang.String getHvCnProc(java.lang.String)
</function-signature>
<example>${state:getHvCnProc(value)}</example>
</function>

</taglib>
  

 

3.处理类StateUtil

public class StateUtil {

/*
* 返回大额往账汇兑业务处理状态中文描述
*/
public static String getHvCnProc(String code){
String retValue = "未知";
if(code != null){
code = code.trim();
if("".equals(code)){
return retValue;
}
}else{
return retValue;
}

for(HvProcStateEnum en: HvProcStateEnum.values()){
if(en.getCode().equals(code)){
retValue = en.getDescript();
break;
}
}

return retValue;
}

}


4.在web.xml注册tld

<jsp-config>
<taglib>
<taglib-uri>/test.state</taglib-uri>
<taglib-location>/WEB-INF/tld/state.tld</taglib-location>
</taglib>
</jsp-config>
  

 

5.使用jstl自定义标签

jsp里加入

<%@ taglib prefix="state" uri="/test.state" %>
然后
${state:hvsendproc(hvSndExchglist.procstate)}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息