前端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);
}
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));
}
}
}
}