jsp自定义标签

来源:互联网 发布:随州广电网络的电话是 编辑:程序博客网 时间:2024/06/01 08:52
<--自定义标签.tld文件-->
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE taglib        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"        "http://java.sun.com/j2ee/dtds/web-jsptaglib_1_1.dtd"><taglib><tlibversion>1.0</tlibversion><jspversion>1.1</jspversion><shortname>Tag for Travel Server</shortname><info>The tag library of Travel Server   </info><tag><name>idName</name><tagclass>com.chinapay.travelconsole.tools.tag.IdNameTag</tagclass><bodycontent>JSP</bodycontent><info>idName tag</info><attribute><name>id</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute><attribute><name>type</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag></taglib>
 
 
 
<--.xml文件配置-->
<taglib><taglib-uri>/tags/travelCommon</taglib-uri><taglib-location>/WEB-INF/tld/travel-common.tld</taglib-location></taglib>
 
 
 
 
<---com.chinapay.travelconsole.tools.tag.IdNameTag java类-->
 

public class IdNameTag extends TagSupport {

 private static final long serialVersionUID = -6270472760008331633L;

 /**
  * 数据ID。根据此id获取name
  */
 private String id;

 /**
  * 获取的数据源。对应的类。
  */
 private String type;

 public void setId(String id) {
  this.id = id;
 }

 public void setType(String type) {
  this.type = type;
 }

 public int doStartTag() throws JspException {
  try {
   pageContext.getOut().write(getTagBody());
   return SKIP_BODY;
  } catch (IOException ioe) {
   throw new JspException(ioe.getMessage());
  }
 }

 public int doEndTag() throws JspException {
  return EVAL_PAGE;
 }

 private String getTagBody() throws JspException {
  String name = "";
  if (IdType.AGENT_CONFIG.equals(type)) {
   AgentConfigBean bean = AgentConfigDAO.getAgentConfigBean(id);
   if (bean != null) {
    name = bean.getName();
   }
  } else if (IdType.AIRPORT_CODE.equals(type)) {
   AirportcodeBean bean = AirportcodeDAO.getAirportcodeBean(id);
   if (bean != null) {
    name = bean.getAirportZhShort();
   }
  } else if (IdType.CITYS.equals(type)) {
   AirportcodeBean bean = AirportcodeDAO.getAirportcodeBean(id);
   if (bean != null) {
    String belongtocity = bean.getBelongtocity();
    CitysBean citysbean = CitysDAO.getCitysBean(belongtocity);
    if (citysbean != null) {
     name = citysbean.getCitynameZh();
    }
   }
  } else if (IdType.NATION.equals(type)) {
   NationBean bean = NationDAO.getNationBean(id);
   if (bean != null) {
    name = bean.getNameZh();
   }
  } else if (IdType.GBPROV.equals(type)) {
   GbProvDAO provdao = new GbProvDAO();
   name = provdao.getProvName(id);
  } else if (IdType.GBCITY.equals(type)) {
   GbCityDAO citydao = new GbCityDAO();
   String[] code = toCode(id);
   name = citydao.getCityName(code[0], code[1]);
  } else if (IdType.GBDIST.equals(type)) {
   GbDistDAO distdao = new GbDistDAO();
   String[] code = toCode(id);
   name = distdao.getDistName(code[0], code[1], code[2]);
  } else if (IdType.AGENT.equals(type)) {
   if ("HuiTongKeService".equals(id)) {
    name = "汇通客";
   }
  } else if (IdType.BRAND.equals(type)) {
   HotelBrandDAO dao = new HotelBrandDAO();
   name = dao.getHotelBrandName(id);
  } else if (IdType.HOTEL_NAME.equals(type)) {
   name = HotelDAO.getHotelName(id);
  }
  return name;
 }

 public static String[] toCode(String key) {
  if (StringUtils.isNotEmpty(key)) {
   String[] code = key.split("\\|");
   return code;
  }
  return null;
 }

 public static String tokey(String provCode, String cityCode) {
  StringBuffer key = new StringBuffer();
  if (StringUtils.isNotEmpty(provCode)) {
   key.append(provCode);
  } else {
   key.append("null");
  }
  if (StringUtils.isNotEmpty(cityCode)) {
   key.append("|").append(cityCode);
  } else {
   key.append("|").append("null");
  }
  return key.toString();
 }

 public static String tokey(String provCode, String cityCode, String distCode) {
  StringBuffer key = new StringBuffer();
  if (StringUtils.isNotEmpty(provCode)) {
   key.append(provCode);
  } else {
   key.append("|").append("null");
  }
  if (StringUtils.isNotEmpty(cityCode)) {
   key.append("|").append(cityCode);
  } else {
   key.append("|").append("null");
  }
  if (StringUtils.isNotEmpty(distCode)) {
   key.append("|").append(distCode);
  } else {
   key.append("|").append("null");
  }
  return key.toString();
 }
}

 

public final class IdType {

 /** 代理商 */
 public final static String AGENT_CONFIG = "0";
 /** 机场 */
 public final static String AIRPORT_CODE = "1";
 /** 城市名称 */
 public final static String CITYS = "2";
 /** 国籍名称 */
 public final static String NATION = "3";
 /** 省份 **/
 public final static String GBPROV = "4";
 /** 城市 **/
 public final static String GBCITY = "5";
 /** 区县 **/
 public final static String GBDIST = "6";
 /** 代理商 **/
 public final static String AGENT = "7";
 /** 所属品牌 **/
 public final static String BRAND = "8";
 /** 酒店名称 **/
 public final static String HOTEL_NAME = "9";
}