019 添加分區功能 - bos
一、基礎調整
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