struts2 ajax json 实现下拉框

本文介绍了一个使用Struts2框架结合Ajax实现JSON数据交互的例子。通过定义AjaxJsonsj类来处理请求,利用MemberLevelService获取会员等级数据,并将其转换为JSON格式返回给前端。前端通过Ajax请求获取数据并填充到下拉列表中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是java代码 :AjaxJsonsj.java

package com.sj.json; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.Preparable; import com.sj.pojo.Memberlevel1; import com.sj.service.MemberLevelService; @SuppressWarnings({"serial","unchecked"}) public class AjaxJsonsj extends ActionSupport implements Preparable{ private MemberLevelService memberLevelService; // 采用spring注入的service private JSONArray result; // 返回的结果传到前台去 //清除显示多重显示方法 public void prepare() throws Exception { clearErrorsAndMessages(); } /** * action默认的方法被调用 * @author su_jian */ public String execute(){ try { List list= memberLevelService.browseMemberLevel2(); // list是具有”键值对“的list 和map类似一个,两个属性 List listsj = new ArrayList(); JSONArray jsonArray = new JSONArray(); //json的数组 Memberlevel1 Memberlevel2 =new Memberlevel1(); listsj.add(Memberlevel2); for (int i = 0; i <list.size() ; i++) { Memberlevel1 memberlevel1 =new Memberlevel1(); Object[] obj = (Object[]) list.get(i); memberlevel1.setIdsj(obj[0]!=null?Integer.valueOf(obj[0].toString()):0); memberlevel1.setLevelName(obj[1]!=null?obj[1].toString():""); listsj.add(memberlevel1); } //讲list 属性从object 转换成 属性 jsonArray = JSONArray.fromObject(listsj); //把list方法换成json 对象 this.result = jsonArray; //付给返回去的值 System.out.println(this.result); } catch (Exception e) { e.printStackTrace(); } return SUCCESS; } //以下 是set get 方法 public MemberLevelService getMemberLevelService() { return memberLevelService; } public void setMemberLevelService(MemberLevelService memberLevelService) { this.memberLevelService = memberLevelService; } public JSONArray getResult() { return result; } public void setResult(JSONArray result) { this.result = result; } }

ajax js 代码如下:

// 返回函数的数据集采用ajax json struts2 function showesay(dataResponse) { var data = eval('(' + dataResponse.responseText + ')'); for(var i=0;i<data.length;i++){ var op= document.createElement("option"); var xl = document.getElementById('xl'); op.text = data[i].levelName; op.value = data[i].idsj; xl.add(op); } selectMem(); } // 返回去的时候重新选择刚才选择的 function selectMem(){ with(document.forms(0)){ var len = xl.options.length; for(var i=0; i<len; i++){ if(xl.options[i].text==levelNamesj.value){ xl.options[i].selected = true; } } } } //获取简单的json数据 function getjson() { var url = 'ajax/ajaxJsonsj.action'; var pars = ''; var ajax = new Ajax.Request(url, { method :'post', parameters :pars, onComplete :showesay }); }

struts2 配置文件 struts.xml 如下:

<!-- ajax json 配置 --> <package name="ajax" extends="json-default" namespace="/admin"> <action name="ajaxJsonsj" class="ajaxJsonsj"> <result type="json"> <param name="root">result</param> </result> </action> </package>

jsp 页面代码

<tr class="tr"> <th class="center">会员级别</th> <td colspan="3"> <SELECT id="xl" name="xl" > </SELECT> </td> </tr>

如愿的现实下拉列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值