1. 程式人生 > >019 添加分區功能 - bos

019 添加分區功能 - bos

save 小明 基礎 template n) dao 前端 service nand


一、基礎調整

1.刪除subarea.jsp中新增窗口的分區編碼一行

2.修改Subarea.hbm.xml,主鍵生成策略為uuid

二、easyUI - combobox下拉框的使用

1.靜態頁面編寫(並不實用)

<select class="easyui-combobox">
<option>小黑</option>
<option>小白</option>
<option>小紅</option>
</select>

2.動態構造下拉列表

<1>在頁面編寫<input>標簽,添加class為easyui-combobox,然後定義url,valueField和textField

<input data-options=" url:‘json/combobox.json‘,valueField:‘id‘, textField:‘name‘ " class="easyui-combobox"/>

<2>提供和定義對應的json,用於初始化下拉列表

[
{"id":"100","name":"小明"},
{"id":"200","name":"小紅"},
{"id":"300","name":"小白"},
{"id":"400","name":"小黑"}
]

三、添加分區-獲取所有區域頁面修改

1.修改選擇區域的url,動態獲取區域構造區域下拉列表

<input class="easyui-combobox" name="region.id"
data-options="valueField:‘id‘,textField:‘name‘,url:‘regionAction_listajax.action‘" />

四、添加分區-獲取所有區域的服務端實現

1.修改Region實體類,添加getName方法,用於頁面展示數據

public String getName(){
return province+city+district;
}

2.編寫RegionAction.listajax返回區域數據

/**
* 查詢所有區域
* @return
*/
public String listajax(){
List<Region> regionList = regionService.list();
list2JsonAndWriteResponse(regionList, new String[]{"subareas"});
return NONE;
}

3.編寫RegionService.list方法獲取所有區域數據

@Override
public List<Region> list() {
return regionDao.list();
}

4.編寫抽取的BaseAction.list2JsonAndWriteResponse方法

protected void list2JsonAndWriteResponse(List<T> list, String[] exclueds) {
// 將pageBean轉為json寫到頁面中
JsonConfig jsonConfig = new JsonConfig();
// 設置排除屬性
jsonConfig.setExcludes(exclueds);
String json = JSONArray.fromObject(list, jsonConfig).toString();
ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");
BOSUtils.getWriter().write(json);
}

五、完善添加分區-獲取所有區域功能,開啟輸入參數的過濾

1.發送的參數名稱為q

2.在RegionAction中添加屬性驅動 q,用於接收查詢條件的參數

3.更改RegionAction.listajax

/**
* 根據頁面輸入進行模糊查詢
* @return
*/
public String listajax(){
List<Region> regionList = null;

if(StringUtils.isNotBlank(q)){
regionList = regionService.listByQ(q);
}else{
regionList = regionService.list();
}

list2JsonAndWriteResponse(regionList, new String[]{"subareas"});
return NONE;
}

4.編寫RegionService.listByQ

@Override
public List<Region> listByQ(String q) {
return regionDao.listByQ(q);
}

5.編寫RegionDao.listByQ

@Override
public List<Region> listByQ(String q) {
String hql = "FROM Region r WHERE r.shortcode LIKE ? OR r.citycode LIKE ? "
+ " OR r.province LIKE ? OR r.city LIKE ? OR r.district LIKE ?";
String pattern = "%"+q+"%";

@SuppressWarnings("unchecked")
List<Region> find = (List<Region>) this.getHibernateTemplate().find(hql,
pattern, pattern, pattern, pattern, pattern);
return find;
}

六、添加分區前端實現

1.為保存按鈕添加單擊事件,進行表單提交

<script type="text/javascript">
$(function(){
$("#save").click(function(){
var f = $("#addSubareaForm").form("validate");
if(f){
$("#addSubareaForm").submit();
}
});
});
</script>


七、添加分區服務端實現

1.編寫SubareaAction.add方法

/**
* 添加分區
* @return
*/
public String add(){
subareaService.save(model);
return LIST;
}

2.編寫SubareaService.save方法

@Override
public void save(Subarea model) {
subareaDao.save(model);
}


019 添加分區功能 - bos