AJAX收到服务器端返回的List集合后 在jsp页面上生成复选框
比如,我有一个page1.jsp页面,里面有个按钮,点击按钮之后触发AJAX事件,AJAX事件向action传递一组参数,action通过传递过来的参数去查询数据库并返回...
比如,我有一个page1.jsp页面, 里面有个按钮,点击按钮之后触发AJAX事件,AJAX事件向action传递一组参数,action通过传递过来的参数去查询数据库并返回List集合(假如名称为:userList)类型的Java对象,然后我该如果把这个List集合对象返回给page1.jsp中的AJAX,AJAX收到返回的List集合后,如何在jsp页面上生成复选框并且循环显示出List集合当前的内容?或者有更好的方法也可以,总之执行过程中浏览器不能刷新,完全依靠AJAX处理
展开
4个回答
展开全部
比如,我有一个page1.jsp页面, 里面有个按钮,点击按钮之后触发AJAX事件,AJAX事件向action传递一组参数,action通过传递过来的参数去查询数据库并返回List集合(假如名称为:userList)类型的Java对象,然后我该如果把这个List集合对象返回给page1.jsp中的AJAX,AJAX收到返回的List集合后,如何在jsp页面上生成复选框并且循环显示出List集合当前的内容?或者有更好的方法也可以,总之执行过程中浏览器不能刷新,完全依靠AJAX处理
后台代码是怎样的
public String findByid() throws Exception {
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/xml;charset=utf-8");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
String xml_start = "<citys>";
String xml_end = "</citys>";
String xml = "";
Branchinfo infod=BranchServices.BranchByid(breanchid);
Set set=infod.getDepartinfos();
Iterator<Departinfo> iterm=set.iterator();
if(infod.getBranchid()==breanchid){
while (iterm.hasNext()) {
Departinfo depart =iterm.next() ;
xml += "<city><value>"
+ depart.getDepartId()+ "</value><text>"
+ depart.getDepartname()+"</text></city>";
}
}
String last_xml = xml_start + xml + xml_end;
response.getWriter().write(last_xml);
response.getWriter().flush();
response.getWriter().close();
return "findDatescuess";
}
前台是这样(page1.jsp)
function getResult() {
var url = "Branchinfo_findByid.action?breanchid="+document.forms.LevelMenu.select1.value;
if (window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}else if (window.ActiveXObject) {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
if(XMLHttpReq){
XMLHttpReq.open("GET",url, true);
XMLHttpReq.onreadystatechange = complete;
XMLHttpReq.send(null);
}
}
function complete(){
if(XMLHttpReq.readyState==4){
if(XMLHttpReq.status==200){
var xmlDoc=XMLHttpReq.responseXML; //获取返回的XML文档
var citys=xmlDoc.getElementsByTagName("city");//获取XML节点
for(var i=0;i<citys.length;i++){//用循环给复选框中加值
var xValue = citys[i].childNodes[0].firstChild.nodeValue;
var xText = citys[i].childNodes[1].firstChild.nodeValue;
//写到这里就不知道如何用循环生成复选框 }else{
alert( "请求异常"+XMLHttpReq.responseText);
}
}
}
后台代码是怎样的
public String findByid() throws Exception {
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/xml;charset=utf-8");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
String xml_start = "<citys>";
String xml_end = "</citys>";
String xml = "";
Branchinfo infod=BranchServices.BranchByid(breanchid);
Set set=infod.getDepartinfos();
Iterator<Departinfo> iterm=set.iterator();
if(infod.getBranchid()==breanchid){
while (iterm.hasNext()) {
Departinfo depart =iterm.next() ;
xml += "<city><value>"
+ depart.getDepartId()+ "</value><text>"
+ depart.getDepartname()+"</text></city>";
}
}
String last_xml = xml_start + xml + xml_end;
response.getWriter().write(last_xml);
response.getWriter().flush();
response.getWriter().close();
return "findDatescuess";
}
前台是这样(page1.jsp)
function getResult() {
var url = "Branchinfo_findByid.action?breanchid="+document.forms.LevelMenu.select1.value;
if (window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}else if (window.ActiveXObject) {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
if(XMLHttpReq){
XMLHttpReq.open("GET",url, true);
XMLHttpReq.onreadystatechange = complete;
XMLHttpReq.send(null);
}
}
function complete(){
if(XMLHttpReq.readyState==4){
if(XMLHttpReq.status==200){
var xmlDoc=XMLHttpReq.responseXML; //获取返回的XML文档
var citys=xmlDoc.getElementsByTagName("city");//获取XML节点
for(var i=0;i<citys.length;i++){//用循环给复选框中加值
var xValue = citys[i].childNodes[0].firstChild.nodeValue;
var xText = citys[i].childNodes[1].firstChild.nodeValue;
//写到这里就不知道如何用循环生成复选框 }else{
alert( "请求异常"+XMLHttpReq.responseText);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<span id="modulelist">
<c:forEach items="${modules}" var="module">
<input type="checkbox" name="modules"value="${module.moduleName }" />
${module.moduleName }
</c:forEach>
</span>
得到list后直接循环就可以用啊,这是我们项目中用到的ajax控制checkbox的代码
<c:forEach items="${modules}" var="module">
<input type="checkbox" name="modules"value="${module.moduleName }" />
${module.moduleName }
</c:forEach>
</span>
得到list后直接循环就可以用啊,这是我们项目中用到的ajax控制checkbox的代码
追问
能不能给我一个完整的例子 谢谢老
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-06-25
展开全部
看看~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询