JSP自定义标签+数据字典

数据字典

在工作中,数据字典是必不可少的工具。用一张数据字典表来存储键值对,使得项目更具有隐秘性。其他表中的字段值不必再用明文来显示,可用字典表的键值来存储。同时,字典表方便我们去查询每一个编码值所对应的真实值,大大方便了我们的工作。

字典表

为方便学习,这里给出我用到的字典表

/*==============================================================*/
/* Table: DICT                                               */
/*==============================================================*/
CREATE TABLE DICT
(
   ID                   BIGINT NOT NULL AUTO_INCREMENT,
   STATE                VARCHAR(3) NOT NULL DEFAULT '0',
   DATA_KEY             VARCHAR(10),
   DATA_VALUE           VARCHAR(50),
   TYPE_CODE            VARCHAR(50),
   TYPE_NAME            VARCHAR(50),
   ORDER_NUM            INT,
   REMARK               VARCHAR(200),
   CREATIME             DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
   CREATE_USER_ID       INT,
   UPDATIME             DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
   UPDATE_USER_ID       INT,
   PRIMARY KEY (ID)
);

ALTER TABLE DICT COMMENT '字典表';

这是执行后的数据表
JSP自定义标签+数据字典_第1张图片
增加几条数据用于测试
在这里插入图片描述

jsp自定义标签

为什么数据字典要用到jsp自定义标签呢?因为我们其他表里存的是编码值,如果页面查询的话还要后台查询字典表,这样每个查询接口都要加上查询字典表的代码,实在不方便。于是,我们可以设置自定义标签,通过自定义标签将编码值自动转化为真实值,减少我们的代码量。

在WEB-INF目录下添加tld文件




    SPay JSP Form Tag Library
  1.0
  1.2
    dictTag
    http://www.tljc.com/dict_tag

    
        Renders an HTML 'select' element. Supports databinding to the selected option.
        option
        com.gzjw.persist.utils.DictTag
        JSP
          
               defaultValue  
            false  
            true  
          
      
            value  
            false  
            true  
    
    
        code
        true  
        true
    
    
        name
        false  
        true
    
    
        id
        false  
        true
    
    
        cssClass
        false  
        true
    
    
        styleClass
        false  
        true
    
    
        multiple
        false  
        true
    
    
        onChange
        false  
        true
    
    
    

添加tld文件所对应的java文件DictTag.java

public class DictTag extends RequestContextAwareTag   {
	@Autowired
	DictRps dictRps;
    private String code;
    private boolean defaultValue;
    private String value;
    private String name;
    private String id;
    private String cssClass;
    private String styleClass;
    private String multiple;
    private String onChange;

    
    

    public String getCssClass() {
		return cssClass;
	}

	public void setCssClass(String cssClass) {
		this.cssClass = cssClass;
	}

	public String getStyleClass() {
        return styleClass;
    }

    public void setStyleClass(String styleClass) {
        this.styleClass = styleClass;
    }

    public String getMultiple() {
        return multiple;
    }

    public void setMultiple(String multiple) {
        this.multiple = multiple;
    }

    public String getOnChange() {
        return onChange;
    }

    public void setOnChange(String onChange) {
        this.onChange = onChange;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getId() {
        return id;
    }

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

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }
    
    public boolean isDefaultValue() {
        return defaultValue;
    }

    public void setDefaultValue(boolean defaultValue) {
        this.defaultValue = defaultValue;
    }
    
    

	@Override
	protected int doStartTagInternal() throws Exception {
		 Dict dict = new Dict();
	    	DictRps dictRps =(DictRps)this.getRequestContext().getWebApplicationContext().getBean(DictRps.class);
	        List dict_list = dictRps.findByTypeCodeAndState(Dict.STATE_NORMAL, code);
	        JspWriter out = pageContext.getOut();
	        StringBuffer sb = new StringBuffer();
	/*        sb.append("");*/
	        try {
	            out.write(sb.toString());
	        } catch (IOException e) {
	            // TODO Auto-generated catch block
	            throw new JspException(e);
	        }
	        return TagSupport.EVAL_PAGE;
	}
    
}


页面上使用刚刚定义的JSP自定义标签

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="UTF-8"%>
 <%@ taglib uri="http://www.tljc.com/dict_tag" prefix="dictTag" %>
                

以上就是JSP自定义标签+数据字典的全部内容,如有问题可以一起进行讨论。

你可能感兴趣的:(JSP自定义标签+数据字典)