一次ligerui的ligerComboBox使用

一次ligerui的ligerComboBox使用

環境:jdk6,springMVC,jsp,oracle

ligerComboBox一般語法:

$("#jc").ligerComboBox({
		     	 width : 110,
		     	   selectBoxWidth:110,
		     	    //data:$("#jcsj").val(),
		     	    data:data,
		     	      valueField : 'dm',  textField: 'mc',
		     	       value:"8"		                	
		     	          	     });

目的:實現一個下拉框的數據是從session裏獲取達到初始化

起因:一開始是在js寫死,領導想數據是從數據庫裏查到放到session裏,然後js獲取數據初始化

一開始:用戶登錄時,查找數據,放到session,request.getSession().setAttribute(“jcsj”,jcsj),返回的是list。
在前臺獲取:

<input id="jcsj" type="hidden" value="<%=request.getSession().getAttribute("jcsj") %>"/>
數據獲取:var sj = $("#jcsj").val()

data數據處就放sj。
報錯無法解析。

:放的都是json格式字符串,放list不對?找ligerui官網,無法查看源碼就點查看去看代碼,可惜全是寫死的,再去看原來的寫法,不過原來的全是發送ajax請求獲取的數據,可是這次是從session獲取到底哪裏不對呢?不是放json格式字符串嗎,我在後臺寫好傳一個json字符串可以了吧,於是我就在後臺循環組裝一個字符串,再放到session傳到前臺。
還是不行,
:·我發現原來的數據alert全是一個個Object,我是一個字符串,我就new一個Array去承接這個值,不管是list(說是一個個對象)json字符串還是無法解析。有點絕望。
四:前臺組裝,報錯。。。。。。

最終:花了我好幾個小時,還是不行,只好照着ajax請求的返回值、取值方法試一下
首先:
把list放在map裏,然後轉換、加密,

	request.getSession().setAttribute("jcsj", Base64.encodeBase64String(JSONObject.fromObject(map).toString().getBytes("utf-8")));

前臺js:

	var jcsjlist = JSON.parse($.base64().decode($("#jcsj").val())).jcsjlist;
	var jcarray = new Array();
	jcarray=jcsjlist;

把jcarray放到data即可。

我其實只知道格式不對,至於爲什麼不對還是不瞭解。
如果哪位大佬知道如何簡化或者我爲什麼一直出錯,望告知,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章