Json配合Jquery在struct2中的应用

1.我在做项目的时候页面上的一个select要动态的加载出来,想到用Jquery做比较方便些》

至于前面的javaBean,ibatis操作数据库,dao层,spring层这里就不说了,抓关键点说说

恩,我这里是在struts2中处理的:

首先处理传递的数据是json的格式的:

publicStringqueryDepartAlldname(){

//查询后台得到的是个list对象

List<Department>departments=departservices.queryDepartAll();

//手动拼json开始

Stringjson="";

//定义号json的格式

Stringformat="{did:%d,dname:'%s'}";

//从list中循环取值放入到json

for(inti=0;i<departments.size();i++){

json+=String.format(format,departments.get(i).getDid(),

departments.get(i).getDname());

if(i<departments.size()-1){

json+=",";

}

}

json="["+json+"]";

//获得respsonse对象

ActionContextctx=ActionContext.getContext();

HttpServletResponseresponse=(HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);

try{

//将json在response中打印出来,json都是这样做的

response.getWriter().print(json);

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}//这里不要返回的

returnnull;

}

2.在页面的处理:

很简单写个js用Jquery做,注意页面要导入Jquery的js

<scripttype="text/javascript">

//查询部门所有的的名称这里用到的是Jquery的ajax请求

functionselectAllDnames(){

$.ajax({

//请求方式

type:"GET",

//请求地址

url:"jsontest!queryDepartAlldname.action",

success:function(msg){

vardata=eval(msg);//将后台接收的数据转型为数组

//获取我的select的对象

varselect=document.getElementById("dname");

select.length=0;//要清空select

select.options.add(newOption("---请选择----","---请选择----"));//循环并动态的添加option

for(vari=0;i<data.length;i++){

select.options.add(newOption(data[i].dname,data[i].did));

}

}

});

}

</script>

页面中的出现<select的地方:

所属部门:

<selectclass="inputCss"id="dname"name="dname">

<optionselected="selected">---请选择---</option>

</select>

相关推荐