AJax技术

用ajax返回到页面一个List,并循环生成下拉列表项

字号+ 作者:H5之家 来源:H5之家 2018-02-15 08:34 我要评论( )

下面是几种转换成json格式的方法: 1 例如: List -- json: ListStudent list = new ArrayListStudent(); for (int i = 0; i stus.length; i++) { list.add(i);

下面是几种转换成json格式的方法:

1 例如:

List --> json:

List<Student> list = new ArrayList<Student>(); for (int i = 0; i < stus.length; i++) { list.add(i); } JSONArray jsonArray = JSONArray.fromObject(stus); System.out.println(jsonArray);

2 例如:

对象(Student)-->json:

Student student = new Student(); student.setAge(18); student.setName("zhangsan"); JSONObject jsonObject = JSONObject.fromObject(student); System.out.println(jsonObject);

3 综合

List<Student> -->json

Student[] stus = new Student[5]; List<Student> stuList = new ArrayList<Student>(); for (int i = 0; i < stus.length; i++) { stus[i] = new Student(); stus[i].setAge(20); stus[i].setName("张三" + i); stuList.add(stus[i]); } JSONObject jsonObjectFromMap = JSONObject.fromObject(stuList); System.out.println(jsonObjectFromMap);


举例:从数据库中查询出一组数据,用ajax传到页面上,并解析生成下拉列表项

Action中:

// 获得传过来的机构ID
String org_id = request.getParameter("org_id");

Connection con = ConnectionFactory.getInstance().getConnection();
Statement pst = null;
ResultSet rs = null;
String sql = "";

sql = " select c.group_ID,c.group_name from groupinfo c where c.group_ID!='"
+ org_id
+ "' start with c.group_ID='"
+ org_id
+ "' Connect by prior c.group_ID = c.parent_ID";


pst = con.createStatement();
rs = pst.executeQuery(sql);
JSONArray arr = new JSONArray();
// 遍历
while (rs.next()) {
JSONObject json = new JSONObject();
json.put("GroupId", rs.getString("group_ID"));
json.put("GroupName", rs.getString("group_name"));
arr.add(json);
}
PrintWriter out = response.getWriter();
out.print(arr.toString());
return null;

页面中的获取传过来的list,并进行遍历,生成下拉列表项

js中:

function change(obj){
var selectValue=document.getElementById('org_id').options[document.getElementById('org_id').selectedIndex].text;
document.getElementById("selectValue").value=selectValue;
//window.location = "<%//=request.getContextPath() %>//statisticsAction.do?cmd=toMmsStaticsByGroup&groupId="+document.getElementById('org_id').value;
var url ='<%=request.getContextPath()%>/statisticsAction.do';
var pars = 'cmd=getGroupByOrg&org_id='+document.getElementById('org_id').value;
var myAjax = new Ajax.Request(url,{method:'post',parameters:pars,onComplete:_complete});
}
//请求完成的处理
function _complete(originalRequest)
{
var statusValue = originalRequest.status;
var arr = originalRequest.responseText;
if(statusValue==200)
{
var group=document.getElementById("columnInfoId");
group.length=0;
group.options.add(new Option("--全部--", "ALL"));
var jsonss=eval("("+arr+")");
for(var i=0;i<jsonss.length;i++){
group.options.add(new Option(jsonss[i].GroupName, jsonss[i].GroupId));
}
}
else if(statusValue==404)
{
alert("代码出现错误,链接地址有误");
}
else
{
alert("代码出现未知错误");

}
}

页面布局中:

<TABLE align=center cellpadding="0" cellspacing="0">
<TBODY>

<TR>
<TD> 机&nbsp;&nbsp;&nbsp;&nbsp;构:</TD>
<td>
<SELECT id = "org_id" value="${param.org_id}" onChange="change(this.options[this.options.selectedIndex].value)">
<c:forEach items="${organizations}" var="org">
<c:if test="${groupId == org['GroupId']}">
<OPTION value="${org['GroupId']}" selected="selected">${org['GroupName']}</OPTION>
</c:if>
<c:if test="${groupId != org['GroupId']}">
<OPTION value="${org['GroupId']}" >${org['GroupName']}</OPTION>
</c:if>
</c:forEach>
</SELECT>
</TD>
</TR>
<TR>
<TD class=zi_3F6293>群&nbsp;&nbsp;&nbsp;&nbsp;组:</TD>
<td>

<SELECT >
<OPTION value="ALL">---全部---</OPTION>

</SELECT>
</TD>
</TR>


<tr>

</table>

参考:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 原生js封装ajax兼容jsonp实例分享

    原生js封装ajax兼容jsonp实例分享

    2018-01-27 13:34

  • 好好学习,天天向上

    好好学习,天天向上

    2018-01-21 10:36

  • JavaCrazyer的ItEye(codewu.com)技术博客

    JavaCrazyer的ItEye(codewu.com)技术博客

    2018-01-19 16:00

  • asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码

    asp.net中利用Jquery+Ajax+Json实现无刷新分页的实例代码

    2017-12-14 10:01

网友点评