使用自定义标签构造select下拉框

我们日常开发中有时候经常遇到一个页面好多Select下拉框,下拉框的内容都被维护在一张字典表中,然后根据字典类型获取不同的数据作为下拉列表展示。这样很繁琐,每次都要需要写一堆东西来初始化下拉选项,我们可以利用jspTag自定义标签来完成。

  • 自定义标签
/**
 * 

* DictSelectTag *

* 基于JspTag的公共选择下拉框 * @author jianzhang11 * @version 1.0 * @desc * @Date: 2016/5/18 18:43 * @since 1.0 */ public class DictSelectTag extends TagSupport{ //获取系统定义的service private BaseDicService baseDicService = SpringContextHolder.getBean("baseDicService"); private String id; private String name; private String value; private String type; /** * 前端CSS样式 */ private String cssStyle; @Override public String getId() { return id; } @Override public void setId(String id) { this.id = id; } public void setName(String name) { this.name = name; } public void setValue(String value) { this.value = value; } public void setType(String type) { this.type = type; } public void setCssStyle(String cssStyle) { this.cssStyle = cssStyle; } /** * 自定义标签实现 * @return * @throws JspException */ @Override public int doEndTag() throws JspException { JspWriter out = pageContext.getOut(); List dicList = baseDicService.findBaseDicsByType(type); StringBuffer sb = new StringBuffer(); sb.append(""); try { out.write(sb.toString()); } catch (IOException e) { e.printStackTrace(); } return TagSupport.EVAL_PAGE; } }
  • 新建tld文件配置标签




    1.0
    dict
    http://iflytek.com/dict_tag
   
   
    
        Renders an HTML 'select' element. Supports databinding to the selected option.
        select
        com.iflytek.esociety.common.tag.DictSelectTag
        JSP
        
            id
            false
            true
        
        
            value
            false
            true
        
        
            name
            true
            true
        
        
            type
            true
            true
        
        
            cssStyle
            false
            true
        
    


  • 页面调用
<%@taglib prefix="dict" uri="/WEB-INF/tld/dict.tld" %>

简单三步即可在页面完成下拉框的渲染,在后台Service获取字典表内容的时候建议加上缓存,这样就不需要多次查询数据库了!

你可能感兴趣的:(自定义标签,java)