请问如何利用AJAX为JSP页面传递一个包含了若干对象的List集合
比如,我有一个page1.jsp页面,里面有个按钮,点击按钮之后触发AJAX事件,AJAX事件向Servlet.java传递一组参数,Servlet.java通过AJAX...
比如,我有一个page1.jsp页面, 里面有个按钮,点击按钮之后触发AJAX事件,AJAX事件向Servlet.java传递一组参数,Servlet.java通过AJAX传递过来的参数去查询数据库并返回List集合(假如名称为:userList)类型的Java对象,然后我该如果把这个List集合对象返回给page1.jsp中的AJAX,AJAX收到返回的List集合后,又如何传递给page2.jsp,page2.jsp用户循环显示出List集合当然的内容?或者有更好的方法也可以,总之执行过程中浏览器不能刷新,完全依靠AJAX处理
回复:斌银
由于我的servlet根据page1.jsp中的AJAX传递的参数不同,可能不是在page2.jsp中显示,可能在page3.jsp显示,page1.jsp是起始页面时不会变的,所以合并不太现实 展开
回复:斌银
由于我的servlet根据page1.jsp中的AJAX传递的参数不同,可能不是在page2.jsp中显示,可能在page3.jsp显示,page1.jsp是起始页面时不会变的,所以合并不太现实 展开
展开全部
可以用两种方式,一种是XML
另一种就是JSON。
如果数据结构不是很复杂,一般都是用JSON,效率也比较高,还可以自已决定格式。
例如List内放的了一个这个的对象:
class JsObj{
string vtb1;
string vtb2;
string vtb3;
}
我可以自定一个这个的格式来传
"jsObj1.vtb1-jsObj1.vtb2-jsObj1.vtb3,jsObj2.vtb1-jsObj2.vtb2-jsObj2.vtb3.....jsObjn.vtb1-jsObjn.vtb2-jsObjn.vtb3"
然后到AJAX JS拿到的就是一个字符串,然后安排自定义的格式来解析就行了。
当然也可以用标准的JSON格式,现在也有很多封装好的JSON 工具包(包含JS的),像Jquery就有。
JSON的标准
http://baike.baidu.com/view/136475.html?wtp=tt
另一种就是JSON。
如果数据结构不是很复杂,一般都是用JSON,效率也比较高,还可以自已决定格式。
例如List内放的了一个这个的对象:
class JsObj{
string vtb1;
string vtb2;
string vtb3;
}
我可以自定一个这个的格式来传
"jsObj1.vtb1-jsObj1.vtb2-jsObj1.vtb3,jsObj2.vtb1-jsObj2.vtb2-jsObj2.vtb3.....jsObjn.vtb1-jsObjn.vtb2-jsObjn.vtb3"
然后到AJAX JS拿到的就是一个字符串,然后安排自定义的格式来解析就行了。
当然也可以用标准的JSON格式,现在也有很多封装好的JSON 工具包(包含JS的),像Jquery就有。
JSON的标准
http://baike.baidu.com/view/136475.html?wtp=tt
参考资料: http://baike.baidu.com/view/136475.html?wtp=tt
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你愿意尝试新东西,建议你学习一下DWR。如果不想为了这么个问题去学新东西,可以考虑使用轮询技术。
即,在page2.jsp和page3.jsp中都加上一个每隔几秒执行一次的ajax,其功能就是询问服务器,有我要的内容了没有?如果有就下载回来,没有就什么也不做。
另外提示一点,要想不刷新页面,jsp代码就不会执行,传递给jso页面java中的对象就无法解析,不可能利用,在这一点上,就必须用json了,不要看到新名词就害怕,json很简单,比xml还简单,搜索一下相关资料,一小时掌握。
如果决定在page2中还是page3中显示的是list中的内容,为什么不在服务器判断,每个页面都进行轮询。
即,在page2.jsp和page3.jsp中都加上一个每隔几秒执行一次的ajax,其功能就是询问服务器,有我要的内容了没有?如果有就下载回来,没有就什么也不做。
另外提示一点,要想不刷新页面,jsp代码就不会执行,传递给jso页面java中的对象就无法解析,不可能利用,在这一点上,就必须用json了,不要看到新名词就害怕,json很简单,比xml还简单,搜索一下相关资料,一小时掌握。
如果决定在page2中还是page3中显示的是list中的内容,为什么不在服务器判断,每个页面都进行轮询。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的建议可以这样:只用一个页面,分为按钮,下面是一个列表,可以为空,如果进行查询或者点击按钮后,给后台传递参数,serverlet获取userlist,通过json-lib进行转换传递到前台,前台ajax传递后台成功后,会有一个成功与否的判断函数,在此函数中把数据传递给列表显示。参考代码:
http://wenku.baidu.com/view/63850f1ca300a6c30c229fe8.html。
http://wenku.baidu.com/view/63850f1ca300a6c30c229fe8.html。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有页面的更换,光靠Ajax做不到的。建议合并2个页面,然后数据返回用JSON,Java中有封装好的JSON与List的转换接口
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询