【JavaWeb探究】自定义JSP标签(三)

     上篇博客我们简单的创建了一个自定义标签,这篇博客我们将继续介绍自定义JSP标签,不过难度升级,我们来定义一个稍难一点的自定义JSP标签,来做一个下拉框,查询父节点对应下面的子节点,我们以查询一个省份下对应的城市为例。


     还是按照之前的步骤,首先我们先创建一个处理该标签的类。

package com.csds.area;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;

import com.zlwy.common.util.SpringUtils;
import com.zlwy.organ.basedict.manager.IBaseDictManager;
import com.zlwy.organ.basedict.service.impl.AreaInfo;
import com.zlwy.organ.entity.BaseDict;

public class AreaInfoTagTest  extends TagSupport{
	
	public String areaSelectValue;//选择值
	public String areaParentId;//父id
	
	/**
	 * 

Description: 结束标签时调用

*/ public int doEndTag() throws JspException { StringBuffer sb = getAreaInfoName(); JspWriter out = pageContext.getOut(); try { out.print(sb.toString()); } catch (IOException ex) { throw new JspTagException("IOException: " + ex.toString()); } return super.doEndTag(); } /** *

Description: 根据父id查询子节点名称

*/ private StringBuffer getAreaInfoName(){ StringBuffer sb = new StringBuffer(); sb.append(""); List areaInfoList = new ArrayList(); try { areaInfoList = areaInfoManager.getDictBySSuperGuid(areaParentId); } catch (Exception e) { e.printStackTrace(); } if (areaInfoList != null && areaInfoList.size()>0) { for (AreaInfo areaInfo : areaInfoList) { if (areaSelectValue.trim().equals(areaInfo.getSGuid().trim())) { sb.append(""); } else { sb.append(""); } } } return sb; } /** *

Description: sql语句查询,根据父id查询子节点名称

*/ public List getAreaInfoNameByParentId(String areaParentId){ List areaInfoList = null; try { StringBuffer sql = new StringBuffer(); sql.append("from AreaInfo a where a.areaParentId = '" + areaParentId + "'"); sql.append("order by t.IOrderNo asc"); areaInfoList = getList(sql.toString()); } catch(Exception e) { e.printStackTrace(); throw e; } return areaInfoList; } /*********************************get/set方法****************************/ public String getAreaSelectValue() { return areaSelectValue; } public void setAreaSelectValue(String areaSelectValue) { this.areaSelectValue = areaSelectValue; } public String getAreaParentId() { return areaParentId; } public void setAreaParentId(String areaParentId) { this.areaParentId = areaParentId; } }

     创建一个xxx.tld文件,代码如下:



    A tag library exercising SimpleTag handlers.
    1.0
    mt
	
	
	     Display areaInfo name 
	    areaInfolist
	    com.csds.area.AreaInfoTag
	    
	       areaParentId
	       true
	       true
	    
	    
	       areaSelectValue
	       false
	       true
	    
	
     在web.xml中的配置一样

  
    /MyTagTest  
    /WEB-INF/tlds/myTagTest.tld  

     然后在页面中引入如下代码

<%@ taglib uri="/MyTagTest" prefix="mt"%>   

     最后在页面中直接用我们自定义的JSP标签就可以了

     这样,一个自定义的JSP标签就可以用了。到这里,关于自定义标签的内容就介绍完了,这三篇文章分别从理论到实践,从简到难对自定义JSP标签进行了介绍。有兴趣的可以深入研究一下。

你可能感兴趣的:(Java)