Torreson 2013-06-08 05:26 采纳率: 0%
浏览 6320
已采纳

如何用Ajax传递一个对象集合到jsp页面。

我想在我的web项目(struts2+hibernate)的首页的页面输出数据库的News这个表的内容,请问具体的代码是怎样的,我都快点疯了。


附我自己写的代码,及供参考,可忽略

在servlet中:
public void getNewsList(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/xml"); // 设置响应类型为XML
response.setCharacterEncoding("GBK"); //设置响应的编码方式
PrintWriter out = response.getWriter();
ConnDB conn=new ConnDB();
String sql="SELECT * FROM News";
ResultSet rs=conn.executeQuery(sql); //
List newsList=new ArrayList();
try {
News n=new News();
while(rs.next()){
n.setId(rs.getInt("id"));
n.setTitle(rs.getString("title"));
newsList.add(n);
}
} catch (SQLException e) {
e.printStackTrace();
}
conn.close(); //
/****************通过Dom4j将获取的最新用户信息输出到XML文档中****************/
Document document = DocumentHelper.createDocument();
Element returnValue= document.addElement("returnValue");
document.setRootElement(returnValue); // 将returnValue设置为根节点
Element e_newsList=returnValue.addElement("NewsList"); //添加newUser节点
e_newsList.setData(newsList);
XMLWriter output;。。。。。
output.flush();
}
在JSP页面中:
javascript中:
function getUserInfo(){
var loader_List=new net.AjaxRequest("NewsListServlet?action=getNewsList&nocache="+new Date().getTime(),deal_getNewsList,onerror,"GET");//实例化Ajax对象
}
function deal_getNewsList(){
var objXml=this.req.responseXML; //获取返回的XML数据
var newsList = objXml.getElementsByTagName("newsList")[0].firstChild.data; //获取
document.getElementById("newsList").innerHTML=newsList; //显示
}
timer=window.setInterval(getUserInfo,60000); //每隔1分钟获取一次

  • 写回答

1条回答 默认 最新

  • 北边的世界 2013-06-08 10:44
    关注
    public void getNewsList(HttpServletRequest request,
     HttpServletResponse response) throws ServletException, IOException {
     response.setContentType("application/xml"); // 设置响应类型为XML
     response.setCharacterEncoding("GBK"); //设置响应的编码方式
    PrintWriter out = response.getWriter();
     ConnDB conn=new ConnDB();
     String sql="SELECT * FROM News";
     ResultSet rs=conn.executeQuery(sql); //
     List newsList=new ArrayList();
     try {
     News n=new News();
     while(rs.next()){
     n.setId(rs.getInt("id"));
     n.setTitle(rs.getString("title"));
     newsList.add(n);
     }
     } catch (SQLException e) {
     e.printStackTrace();
     }
     conn.close(); //
     response.setHeader("cache-control","no-cache");
                    PrintWriter out=response.getWriter();
                out.print("<?xml version='1.0' encoding='UTF-8'?>");
                                    out.print("<root>"); 
    for(int i=0;i<newList.size();i++){
    out.print("<NewList>");
    out.print("<Id>")
    out.print(newList.get(i).getId());
    out.print("</Id>");
    out.print("<Title>");
    out.print(newList.get(i).getTitle());
    out.print("</Title>");
    out.print("</NewList>");
    
    }
    out.print("</root>");
    out.flush;
    out.close;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机