我想在页面初始化的时候,从数据库中取出一些值然后放在页面的什么地方,以供javascript调用,应该怎么弄

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【zhangcunhua】截止到2008-06-30 16:51:27的历史汇总数据(不包括此帖):
    发帖数:8                  发帖分:240                
    结贴数:4                  结贴分:160                
    未结数:4                  未结分:80                 
    结贴率:50.00 %            结分率:66.67 %            
    楼主加油
      

  2.   

    <script type="text/javascript">
    var temp='';
    function getResult(){
      var keyword=document.getElementById('keyword').value;
      if(temp!=keyword && keyword!=''){
         temp=keyword;
      var url='<%=path%>/ajaxServlet?keyword='+keyword;
      
      if (window.XMLHttpRequest) { 
        req = new XMLHttpRequest(); 
      }else if (window.ActiveXObject){ 
        req = new ActiveXObject('Microsoft.XMLHTTP'); 
      } 
      if(req){ 
         req.open("POST",url, true); 
         req.onreadystatechange = complete; 
         req.send(null); 
      } 
      }else{
       var leng=tb.rows.length;
    for(var i=0;i<leng;i++){
    tb.deleteRow(0);
    }
      }


    function complete(){
      if (req.readyState == 4) { 
        if (req.status == 200) { 
          var strResult = unescape(req.responseText);
          var arrResult = strResult.split("@@@");
    var tb=document.getElementById('tb');
    var leng=tb.rows.length;
    for(var i=0;i<leng;i++){
    tb.deleteRow(0);
    }
    for(var i=0;i<arrResult.length;i++){
       var row=tb.insertRow();
       var cell=row.insertCell();
       cell.innerHTML="<a href=search?keyword="+arrResult[i]+"><font>"+arrResult[i]+"</font></a>";
    }
        }else{
         alert(req.status);
        } 
      } 
             } 

    </script>
      

  3.   

    拜托各位,是页面初始化的时候OK?不是 有什么动作的时候,不要一切都提AJAX,
     页面初始化取到数据库中数据
    <%
    String str = "取数据库中变量";
    %><input type="hidden" name="h1" value="<%=str%>">
     
    JS中
    var str = "<=str%>";
    或者
    从隐藏域h1中取值
    var str =document.forms[0].h1.value;
      

  4.   

    可以把request对象里的值放到javascript的array里么
      

  5.   

    我觉的用iframe也可以实现这个功能,设一个高度和宽度都为0的iframe,然后让iframe去查数据库再用parent返回给页面。
      

  6.   

    request对象<% 
    String str1 = "request获取属性1"; 
    String str2 = "request获取属性2"; 
    %> 
    JS中 var my_array = new Array();   my_array[0] = "<%=str1%>";
       my_array[1] = "<%=str2%>";
    当然,有点笨拙,找更简单的方法去
      

  7.   

    不知道各位对kinghonggen的想法有什么见解,我也想这样做
      

  8.   


    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    <%
    String[] str = new String[10];
    for(int i=0;i<str.length;i++){
    str[i] = String.valueOf(i);
    }
    %>
    <script type="text/javascript">
    <!--
    var my_array = new Array(); 
    <%
    for(int i=0;i<10;i++){
    %>
      my_array[<%=i%>] = " <%=str[i]%>"; 
      alert(my_array[<%=i%>]);
    <%
    }
    %>
    //-->
    </script>
      

  9.   

    在js中用数组呗
    通过ajax把DB返回的data放到数组中
      

  10.   

    这是我写的一个测试JSP,就是代码看起来可能不太舒服,唉,JSP写逻辑就是有点头疼
      

  11.   

    这是我写的一个测试JSP,就是代码看起来可能不太舒服,唉,JSP写逻辑就是有点头疼
      

  12.   

    看看下面这个,或许有用
    <%
    String[][] dwList2 = (String[][])request.getAttribute("dw2");//һ¼¶µ¥λ
    %><script language="javascript">
        <% 
    if(dwList2!=null && dwList2.length>0){
          out.println("var dwList2 = new Array();"); //js 中的数据
                  for(int i=0;i<dwList2.length;i++){
    out.println("dwList2["+i+"]=new Array();");
    out.println("dwList2["+i+"][0]='"+dwList2[i][0]+"';");
    out.println("dwList2["+i+"][1]='"+dwList2[i][1]+"';");
    out.println("dwList2["+i+"][2]='"+dwList2[i][2]+"';");
    }
    }
    %></script>
      

  13.   

    对象存储在request或者session中.js中 ${对象名}
      

  14.   

    1.jsp
    <body>
    <% request.setAttribute("name","XYZ"); %>
    <% request.getRequestDispatcher("2.jsp").forward(request,response); %>
    </body>2.jsp
    <body>
    <%=request.getAttribute("name") %>
    <br>
    <script type="text/javascript">
    document.write("${name}");
    </script>
    </body>测试过,可用。
      

  15.   

    我要做的是把从数据库中的一个resultset放在一个request对象中,然后,我想把它放在javascript的一个数组里,然后再脚本里调用,我结合了19楼和17楼的方法,结果什么也没打印出来<%String[][] projectname = (String[][])request.getAttribute("projectname");%>
    <script type="text/javascript">
    <%
    if (projectname!=null&&projectname.length>0)
    {
    out.println("var projectname = new Array(new Array(),new Array());");
    for(int i=0;i<projectname.length;i++)
    {
    out.println("projectname["+i+"][0] = "+projectname[i][0]+";");
    out.println("projectname["+i+"][1] = "+projectname[i][1]+";");
    }
    }
    %>
    function show()
    {
    //var projectname = new Array(new Array(),new Array() );
    //projectname[0][1] = "asdf";
    alert("${projectname[1][0]}");
    }
    </script>不知道是不是我这个哪写错了
      

  16.   

    直接用Java鏈接數據庫讀取數據頁面載入時候提取數據,放到js變量中。完畢
      

  17.   

    test1.jsp
    <body>
    <script type="text/javascript">
    document.write("${arr[0][0]}");
    document.write("....");
    document.write("${arr[0][1]}");
    </script>
    </body>test.jsp
    <body>
    <%
     String[][] str = new String[2][2];
     str[0][0] = "hello";
     str[0][1] = "world";
     request.setAttribute("arr",str);
    %><% request.getRequestDispatcher("test1.jsp").forward(request,response); %> 
    </body>
      

  18.   

    <script type="text/javascript">
    var pro_array = new Array();
    <%
    int project_count=0;
    Collection projects1=(Collection)request.getAttribute("project");
    Iterator it = projects1.iterator();
    while(it.hasNext())
    {
    Sqlconnect project=(Sqlconnect)it.next();

    %>
    pro_array["<%=project_count%>"]= new Array(new Array());
    pro_array["<%=project_count%>"][0] = "<%=project.getProject_id()%>";
    pro_array["<%=project_count%>"][1] = "<%=project.getProject_name()%>";
    <%     
    project_count++;
    }
    %>
    </script>
    servlet
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     String sqlstate= "select * from z_project";
     ResultSet result=null;
     PreparedStatement select_stm;
     Collection<Sqlconnect> ret=new ArrayList<Sqlconnect>();
    try {
    select_stm = conn.prepareStatement(sqlstate,java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
    result=select_stm.executeQuery();
    int project_count =0;
    if (result.next())
    {
    project_count = result.getInt(1);
    result.close();
    }
    if (project_count>0)
    {
    result=select_stm.executeQuery();
    while(result.next())
    {
    String projectid = result.getString(1);
    String projectname = result.getString(2);
    Sqlconnect beanObj = new Sqlconnect();
    beanObj.setProject_id(projectid);
    beanObj.setProject_name(projectname);
    ret.add(beanObj);
    }
    result.close();
    }
    select_stm.close();
    request.setAttribute("project", ret);
    RequestDispatcher requestDispatcher = request.getRequestDispatcher("main.jsp");
    requestDispatcher.forward(request, response);
    }
    catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();

    }// TODO Auto-generated method stub
    后来我这样实现了。