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>