请问一下如何在jsp里面动态生成table?谢谢了!

解决方案 »

  1.   

    不知道你想实现什么样的动态table。
    下面的例子是通过AJAX向后台servlet提交请求,获得数据,并且把这些数据实时的显示在前台页面的table中。你可以参考一下。
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Title</title><script>
    function Recieve()
    {
    //首先声明一个与服务端servlet打交道的xmlHttp
    if(window.XMLHttpRequest)
    {
    xmlHttp=new XMLHttpRequest()
    }
    else if(window.ActiveXObject)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")
    }
    //设置xmlHttp的响应方法,只有当readystate为4并且status为200时,才说明后台servlet返回数据成功
    xmlHttp.onreadystatechange=function()
    {
    if((xmlHttp.readystate==4)&&(xmlHttp.status==200))
    {
    //得到servlet返回的数据(在这里后台servlet就是简单生成一个随机数返回)
    text=xmlHttp.responseText;
    document.getElementById("view").value=text;
    //对table添加tr元素
    newRow=document.getElementById("dynaTable").insertRow();
    //对添加的tr元素添加td元素
    newCell=newRow.insertCell();
    //在添加的td元素中将返回值填充进去
    newCell.innerText=text;
    }
    }
    //通过xmlHttp对象指定请求的方式(POST)服务端地址(/webchat/ViewServlet),异步交互方式(true)
    xmlHttp.open("POST","/webchat/ViewServlet",true);
    //设置请求的格式
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    //发送请求
    xmlHttp.send();
    }
    //设置定时执行请求,获得数据,60是执行间隔,单位是毫秒
    window.setInterval("Recieve()",60);
    </script></head>
    <body>
    <input id="view" type="text" readonly="readonly"/>
    <table id="dynaTable">
    </table>
    </body>
    </html>
    保存为jsp或者html格式都可以。
      

  3.   

    import java.io.IOException;
    import java.util.Random;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse; public class ViewServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet { public ViewServlet() {
    super();
    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request,response);
    }  

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //生成一个随机数
    Random r=new Random();
    long l=r.nextLong();
    //将生成的随机数通过response对象写到客户端去,客户端接收将值写页面的table中。
    response.getWriter().write(""+l);
    response.getWriter().flush();
    }           
    }
    服务端的servlet文件,保存为java格式
      

  4.   

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>
    webchat</display-name>
    <servlet>
    <description>
    </description>
    <display-name>
    ViewServlet</display-name>
    <servlet-name>ViewServlet</servlet-name>
    <servlet-class>
    com.servlet.ViewServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>ViewServlet</servlet-name>
    <url-pattern>/ViewServlet</url-pattern>
    </servlet-mapping>
    </web-app>
    web描述符中配置上面用的那个servlet。在上面的上面的jsp文件中是通过/webchat/ViewServlet应用的,因为我的jsp文件和配置的servlet不是同级目录,所以直接从/根上下文webchat中找,如果你的jsp文件也放到根上下文中那就可以直接通过ViewSerlvet引用。建一个web工程,将上面的jsp文件和java文件分别放合适的位置,并且在web描述符文件中配置好servlet映射,然后将这个工程发布到一个serlvet容器中,常见就是tomcat,然后在IE中访问这个jsp文件,如果映射配置、引用正确的话,你会看到效果的。否则仔细根据你自己的情况检查servlet映射、引用。
      

  5.   

    真是高手,如果有直接在javascript里面生成table的例子就好了!:)
      

  6.   

    在JS中生成table上面的代码就能办到啊。
    就用
    newRow=document.getElementById("dynaTable").insertRow();
    //对添加的tr元素添加td元素
    newCell=newRow.insertCell();
    //在添加的td元素中将返回值填充进去
    newCell.innerText=text;这些代码就可以啊,这里text你在js中定义就行了。
    当然你可以对td、tr进行样式定义,具体的看DHTML中的TD、TR中的样式定义。
      

  7.   

    比如你想设置添加的TD元素的背景色是黑色就可以:
    newCell.style.backgroundColor="#000000";
    就可以了。当然还有很多样式属性,不能在这里一一列举,详细的自己去w3c组织的网站去查找。