1. 程式人生 > >二 配置數據字典&異步查詢客戶

二 配置數據字典&異步查詢客戶

util back all size ima 通過 需要 throw 技術分享

數據字典:

  • 字典表和客戶表的關系
  • 配置字典表
  • 配置客戶表
  • Spring管理映射文件

1 字典表和客戶表的關系

技術分享圖片

2 配置字典表

技術分享圖片

3 配置客戶表

技術分享圖片

技術分享圖片

4 Spring管理映射文件

技術分享圖片

異步查詢客戶:

頁面加載的時候,callback函數將對應信息字典表id,通過callback回調函數傳給Action,action調用業務層,業務層調用DAO從數據庫裏面將需要的數據,再由Action傳給頁面。

  • 前端頁面
  • Action
  • Service
  • DAO

1 前端交互:

技術分享圖片

技術分享圖片

2 Action:

package com.mycrm.web.action;

import java.io.IOException; import java.util.List; import org.apache.logging.log4j.core.config.json.JsonConfiguration; import org.apache.struts2.ServletActionContext; import com.mycrm.domain.BaseDict; import com.mycrm.service.BaseDictService; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven;
import net.sf.json.JSONArray; import net.sf.json.JsonConfig; /* * 字典的Action */ public class BaseDictAction extends ActionSupport implements ModelDriven<BaseDict> { // 模型驅動 private BaseDict baseDict = new BaseDict(); @Override public BaseDict getModel() { return baseDict; }
//註入Service private BaseDictService baseDictService; public void setBaseDictService(BaseDictService baseDictService) { this.baseDictService = baseDictService; } //根據類型名稱查詢字典的方法,findByTypeCode public String findByTypeCode() throws IOException{ System.out.println("BasedictAction中的findByTypeCode方法執行了"); List<BaseDict> list = baseDictService.findByTypeCode(baseDict.getDict_type_code()); //將list轉成JSON,引入包 jsonlib/fastjson /** * JSONConfig:轉JSON的配置對象 * JSONArray: 將數組和list集合轉成JSON * JSONObject: 將對象和MAP集合轉成JSON */ //jsonConfig.setExcludes去掉不必要的字段 JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setExcludes(new String[]{"dict_sort","dict_enable","dict_memo"}); JSONArray jsonArray = JSONArray.fromObject(list,jsonConfig); //將JSON打印到頁面: ServletActionContext.getResponse().setContentType("text/html;charset=utf-8"); ServletActionContext.getResponse().getWriter().println(jsonArray.toString()); return NONE; } }

3 Service:

package com.mycrm.service.impl;

import java.util.List;

import com.mycrm.dao.BaseDictDao;
import com.mycrm.domain.BaseDict;
import com.mycrm.service.BaseDictService;

/**
 * 
 * 字典業務層的實現類
 */
public class BaseDictServiceImpl implements BaseDictService {
    // 註入Dao
    private BaseDictDao baseDictDao;

    public void setBaseDictDao(BaseDictDao baseDictDao) {
        this.baseDictDao = baseDictDao;
    }

    @Override
    public List<BaseDict> findByTypeCode(String dict_type_code) {
        return baseDictDao.findByTypeCode(dict_type_code) ;
    }

}

4 DAO:

package com.mycrm.dao.impl;

import java.util.List;

import org.springframework.orm.hibernate5.support.HibernateDaoSupport;

import com.mycrm.dao.BaseDictDao;
import com.mycrm.domain.BaseDict;

public class BaseDictDaoImpl extends HibernateDaoSupport implements BaseDictDao {

    @Override
    public List<BaseDict> findByTypeCode(String dict_type_code) {
         return (List<BaseDict>) this.getHibernateTemplate().find("from BaseDict where dict_type_code=?", dict_type_code);        
    }

}

二 配置數據字典&異步查詢客戶