1. 程式人生 > >0008.文章管理

0008.文章管理

先做個選擇文章專欄的下拉選擇框。

用EasyUI提供的combobox來實現,通過傳送ajax獲取專欄資料,然後根據返回的json資料構造下拉框。

前端頁面ajax請求:

<div><input id="arti_cate"> <input id="arti_title" style="display:'inline-block';width:70%;" value="請輸入文章標題" > </div>
//構造下拉框
			$(function(){
				//獲取當前使用者id
				var user_id = ${loginUser.user_id }+"";
				alert(user_id);
				$("#arti_cate").combobox({
					url:'CategoryAction_ajaxlist.action?userId='+user_id,
					valueField:'cate_id',
					textField:'title'
				});
				$("#arti_cate").combobox('select','請選擇專欄');
			});

伺服器專欄action對應方法:

/*
	 * ajax查詢專欄列表資料
	 */
	private Long userId;//使用者id
	public Long getUserId() {
		return userId;
	}
	public void setUserId(Long userId) {
		this.userId = userId;
	}
	public String ajaxlist(){
		List<Category> list = categoryService.ajaxlist(userId);
		JsonConfig jsonConfig = new JsonConfig();
		//指定哪些屬性不需要轉json
		String[] exclueds = {"user","articles"};
		jsonConfig.setExcludes(exclueds);
		//將資料轉換為json格式
		String json = JSONArray.fromObject(list,jsonConfig).toString();
		//設定資料編碼格式
		ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");
		try {
			ServletActionContext.getResponse().getWriter().print(json);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return "none";
	}
轉json格式的時候要設定排除欄位,否則會造成死迴圈異常。詳情參考另一篇博文:http://blog.csdn.net/akmissxt/article/details/79079935

service層實現:

	/**
	 * ajax查詢列表資料
	 */
	public List<Category> ajaxlist(Long userId) {
		return categoryDao.ajaxlist(userId);
	}

dao層實現:

	/**
	 * 根據使用者id查詢專欄
	 */
	public List<Category> ajaxlist(Long userId) {
		String hql = "FROM Category c WHERE user = (FROM User WHERE user_id = ?) ";
		List<Category> list = (List<Category>) this.getHibernateTemplate().find(hql,userId);
		return list;
	}

頁面效果: