`
hongmeikaile
  • 浏览: 116424 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

下面是几种转换成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 width="95%" align=center cellpadding="0" cellspacing="0">
<TBODY>

<TR>
<TD class="zi_3F6293" align="left" height="35" width="50"> 机&nbsp;&nbsp;&nbsp;&nbsp;构:</TD>
<td>
<SELECT style="width:150px" name="groupId" 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 align="left" height="35" width="50">群&nbsp;&nbsp;&nbsp;&nbsp;组:</TD>
<td>

<SELECT style="width:150Px" name="columnInfoId" id="columnInfoId" >
<OPTION value="ALL">---全部---</OPTION>

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


<tr>

</table>

 

 参考:http://www.cnblogs.com/chenji/archive/2010/09/25/1834580.html

分享到:
评论

相关推荐

    下拉列表.zip

    在IT行业中,下拉列表(Dropdown List)是一种常见的用户界面元素,它允许用户从一组预定义的选项中选择一个或多个值。下拉列表通常用于节省屏幕空间,尤其是在选项较多时,相比于显示所有选项,下拉菜单更加整洁。...

    jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表

    通过遍历JSON数组,并使用`prepend`方法将每一个选项添加到下拉列表的最前面。 3. 在AJAX请求中,可以添加回调函数如`loadFunction`、`errorFunction`和`successFunction`来处理不同情况下的页面显示。例如,在请求...

    HTML5实现搜索输入框下拉列表代码.zip

    在上述代码中,`suggestions`数组应该根据实际应用场景从服务器获取或从本地缓存中读取,然后通过循环遍历,将包含用户输入值的建议项添加到`&lt;option&gt;`中。 此外,为了提高用户体验,还可以添加额外的功能,如自动...

    javaScript如何处理从java后台返回的list

    例如,根据返回的数据动态生成下拉列表、列表项或者表格等。这些展示通常需要结合前端的HTML和CSS技术来完成,比如: ```javascript // 假设我们想要在下拉列表中显示这个数据集合 var ...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_5_标签 共113页.pptx

    7. **`&lt;s:select&gt;`**:生成下拉列表。 8. **`&lt;s:doubleselect&gt;`**:用于生成一对双列表框,支持多选。 9. **`&lt;s:combobox&gt;`**:生成组合框。 10. **`&lt;s:optiontransferselect&gt;`**:生成可移动选项的下拉列表。 11. *...

    struts2标签解释

    Struts2是一个强大的MVC框架,它提供了丰富的标签库,使得开发者可以更加便捷地构建动态JSP页面。这些标签简化了HTML元素与Action之间的交互,增强了可读性和维护性。以下是对部分Struts2标签的详细解释: A. `...

    Struts_2_标签库(文档手册)_Tags-API-CLSW-JSP

    用于执行一个指定的动作,通常在JSP页面中作为按钮或链接的事件处理,可以将控制权转移至另一个动作类,实现视图到控制器的跳转。 #### `&lt;s:actionerror&gt;` 和 `&lt;s:actionmessage&gt;` 标签 分别用于显示在动作执行...

    struts 2标签

    Struts2标签库是Struts2框架中一个强大的特性,它提供了一系列的标签来简化JSP页面中的Java代码,使得视图层更加清晰易读。这些标签覆盖了各种功能,如表单处理、数据展示、条件判断等。下面将详细介绍一些重要的...

    解决vue动态下拉菜单 有数据未反应的问题

    在动态生成下拉菜单列表时,我们一般会利用Vue的响应式数据绑定机制来实现数据与视图的同步更新。问题可能会出现在多个环节,以下是主要的一些解决方向: 1. **数据响应性问题**:确保在Vue实例中正确声明响应式...

    struct2标签

    - `&lt;s:combobox&gt;`:创建下拉列表,支持AJAX交互。 D. 日期与时间处理: - `&lt;s:date&gt;`:格式化日期。 - `&lt;s:datetimepicker&gt;`:提供日期和时间选择器。 E. 条件判断: - `&lt;s:if&gt;`、`&lt;s:elseif&gt;`、`&lt;s:else&gt;`:用于...

    struts 2标签库介绍

    用于创建双列表选择框,方便用户从一个列表中选择项并移动到另一个列表中。例如:`&lt;s:doubleselect name="selectedItems" list="itemsList" headerKey="-1" headerValue="All Items" /&gt;`,这里 `name` 指定了选择框...

    struts2标签整理

    该标签用于执行一个Action,并跳转到指定的结果视图。 ```jsp &lt;!-- 可以包含其他表单元素 --&gt; ``` ##### 3. `&lt;s:actionerror&gt;` - 显示动作错误信息 此标签用来显示Action执行过程中产生的错误信息。 ```jsp ```...

    MVC视图代码逻辑MVC视图代码逻辑

    例如,一个登录表单可以作为部分视图在多个页面上使用。 ```html &lt;!-- _Layout.cshtml --&gt; &lt;!DOCTYPE html&gt; ... @RenderBody() &lt;footer&gt;... &lt;!-- Index.cshtml --&gt; @{ Layout = "_Layout"; } @...

    重要知识Structs2标签初学者.pdf

    7. **下拉框标签 `&lt;s:combobox&gt;`**:创建一个下拉列表,可从指定的数据源中填充选项。 8. **JavaBean标签 `&lt;s:bean&gt;`**:在Struts1.x中使用较多,用于处理JavaBean对象。 9. **复选框标签 `&lt;s:checkbox&gt;``和`...

    js添加select下默认的option的value和text的方法

    然后在JSP页面中使用struts2的标签来遍历sjxList并生成select的option项: ```html &lt;s:select name="sjx" list="sjxList" listKey="BM" listValue="MC" size="20" cssStyle="width:100%;height:70px;border:0" ...

    重要知识struts2标签详解收集.pdf

    Struts2是一个强大的MVC框架,其标签库是其核心特性之一,极大地简化了Web应用的视图层开发。在本文中,我们将深入探讨Struts2的标签体系,包括它们的功能、分类和使用方法。 首先,理解Struts2的作用至关重要。...

    struts2标签详细讲解

    3. `&lt;s:combobox&gt;`:生成下拉选择框,可以通过Ajax动态填充数据。 D. 其他辅助标签: 1. `&lt;s:date&gt;`:格式化日期,可以方便地展示或输入日期。 2. `&lt;s:datetimepicker&gt;`:日期时间选择框,用户可以选择日期和时间。...

    struts2-s标签

    这些标签用于创建下拉列表和子集选择框,`&lt;s:select&gt;` 创建标准的下拉列表,而 `&lt;s:subset&gt;` 可以从集合中选择子集。 **示例:** ```xml &lt;s:select name="country" list="countries" headerKey="-1" headerValue=...

    KODExplorer 芒果云-资源管理器

    - 你可以把他当做管理linux的一个操作系统界面 - 可以用来作为私有云存储系统,存储你的文件... - 当然你也可以用来分享文件 - Web IDE / browser code editor awesomeness - 更多场景等你来挖掘!…… #### 3....

Global site tag (gtag.js) - Google Analytics