数据字典统一管理,动态下拉框

前端xhr  js

var buildTag = {

	/*
	 *构建数据字典某一项的下拉框
	 */
	getInfoTypeDatas:function(selectId,infoCode,defaultValue){
		$.get(basePath+"/tag/build!getInfoTypeDatas.action?infoCode="+infoCode,function(arg){
			for(var i=0; i<arg.length; i++){
				var selected = "";
				if(defaultValue){
					if(arg[i].id == defaultValue){
						selected = "selected";
					}
				}
				$("<option "+selected+">",{
					value:arg[i].id,
					text:arg[i].name
				}).appendTo($("#"+selectId));
			}
		},"json");
	},
	
	/*
	 *选择城市
	 */
	selectCity:function(selectId,defaultValue){
		this.getInfoTypeDatas(selectId,"city",defaultValue);
	},

	selectCompanyType:function(selectId,defaultValue){
		this.getInfoTypeDatas(selectId,"companyType",defaultValue);
	},
	selectApplicationType:function(selectId,defaultValue){
		this.getInfoTypeDatas(selectId,"applicationType",defaultValue);
	},
	/**
	 * feedback type
	 * @param selectId
	 * @param defaultValue
	 */
	selectFeedbackType:function(selectId,defaultValue){
		this.getInfoTypeDatas(selectId,"feedbacktype",defaultValue);
	}
	
	
};


后端java代码

action

import java.util.List;

import javax.annotation.Resource;

import com.google.gson.Gson;

import cn.com.qytx.cbb.domain.InfoType;
import cn.com.qytx.cbb.service.IInfoType;


public class BuildTagAction extends BaseAction {

	private String infoCode;
	
	@Resource(name="infoTypeImpl")
	private IInfoType<InfoType> infoTypeService;
	
	
	public String getInfoCode() {
		return infoCode;
	}


	public void setInfoCode(String infoCode) {
		this.infoCode = infoCode;
	}


	public String getInfoTypeDatas() throws Exception{
		List<InfoType> list = infoTypeService.findByCode(infoCode);
		if(list!=null){
			Gson gson = new Gson();
			ajax(gson.toJson(list));
		}else{
			ajax("");
		}
		return null;
	}
}


service

public List<InfoType> findByCode(String code){
		InfoType it = infoTypeDao.findByCode(code);
		Integer parentId = it.getId();
		return infoTypeDao.findSysList(parentId);
	}


java bean

public class InfoType extends BaseEntity
{
	public enum InfoCode{
		feedbacktype("feedbacktype");
		private InfoCode(String infocode){
			this.infocode = infocode;
		}
		String infocode;
		public String getInfoCode(){
			return infocode;
		}
	}

	
    /**
     * 序列号
     */
    private static final long serialVersionUID = 2669727616436832468L;
    @Expose
    private String name; // key
    private String infoCode; // 值
    private Integer recordUserId; // 记录人或最后修改人
    private Integer parentId;
    private Timestamp createDate;
    private Timestamp modifyDate;

    public Integer getParentId() {
		return parentId;
	}

	public void setParentId(Integer parentId) {
		this.parentId = parentId;
	}

	public Timestamp getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Timestamp createDate) {
		this.createDate = createDate;
	}

	public Timestamp getModifyDate() {
		return modifyDate;
	}

	public void setModifyDate(Timestamp modifyDate) {
		this.modifyDate = modifyDate;
	}

	public String getName()
    {
        return this.name;
    }

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


    public Integer getRecordUserId()
    {
        return recordUserId;
    }

    public void setRecordUserId(Integer recordUserId)
    {
        this.recordUserId = recordUserId;
    }

	public String getInfoCode() {
		return infoCode;
	}

	public void setInfoCode(String infoCode) {
		this.infoCode = infoCode;
	}

	
}


util

package cn.com.qytx.ayzw.util;

import java.util.HashMap;
import java.util.Map;

import cn.com.qytx.cbb.domain.InfoType;

/**
 * 功能:字典表工具类,单例模式
 * 版本: 1.0
 * 开发人员:贾永强
 * 创建日期: 下午4:40:07 
 * 修改日期:下午4:40:07 
 * 修改列表:
 */
public class InfoTypeUtil {
	
	/*******单例模式开始********/
	private static InfoTypeUtil instance = null;
	private InfoTypeUtil(){
		
	}
	public static synchronized InfoTypeUtil getInstance(){
		if(instance == null){
			instance = new InfoTypeUtil();
		}
		return instance;
	}
	
	/*******单例模式结束********/
	
	private static Map<Integer,InfoType> container = new HashMap<Integer,InfoType>();
	
	/**
	 * 功能:
	 * @param
	 * @return
	 * @throws   
	 */
	public void putToContainer(Integer id,InfoType infoType){
		this.container.put(id, infoType);
	}
	
	public static InfoType getInfoTypeById(int infoTypeId){
		return container.get(infoTypeId);
	}
	
	
}
package cn.com.qytx.ayzw.servlet;

import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import cn.com.qytx.ayzw.util.InfoTypeUtil;
import cn.com.qytx.cbb.domain.InfoType;
import cn.com.qytx.cbb.service.IInfoType;
import cn.com.qytx.cbb.util.spring.SpringUtil;

public class InitInfoTypeServlet extends HttpServlet {

	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
		IInfoType<InfoType> infoTypeService = (IInfoType<InfoType>) SpringUtil.getBean("infoTypeImpl");
		List<InfoType> list = infoTypeService.findAll();
		if(list!=null){
			for(int i=0; i<list.size(); i++){
				InfoTypeUtil.getInstance().putToContainer(list.get(i).getId(), list.get(i));
			}
		}
	}

}




原文地址:https://www.cnblogs.com/james1207/p/3306330.html