一次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即可。

我其实只知道格式不对,至于为什么不对还是不了解。
如果哪位大佬知道如何简化或者我为什么一直出错,望告知,谢谢。

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