【问题标题】:passing value of arraylist to javascript将arraylist的值传递给javascript
【发布时间】:2013-10-11 20:52:18
【问题描述】:

我在一个jsp中有arraylist。我想要另一个jsp上java脚本中的arraylist值。你能告诉我怎么做吗。下面是我的代码。我有两个jsp。

getuser.jsp


Class.forName(driver).newInstance();
      conn = DriverManager.getConnection(url+dbName,userName,password);
            String query = "select user_registeration_code from system_user_master where user_first_name ='"+firstname+"' and user_last_name='"+lastname+"' and user_phone_no='"+emp_id+"'";
       st = conn.createStatement();

       ArrayList<String> addressLists1 = new ArrayList<String>();
           ResultSet  rs = st.executeQuery(query);
           while(rs.next())
                {


               addressLists1.add(rs.getString("user_registeration_code"));


                }
                out.println(addressLists1.size());
                //out.println(data);
                request.setAttribute("top", addressLists1);

second.jsp


< script type = "text/javascript" >


function showEmp(emp_value) {

    var fname = document.getElementById("txtfirstname").value;
    alert(fname);
    var lname = document.getElementById("txtlastname").value;
    alert(lname);
    if (document.getElementById("txtmobileno").value != "") {
        alert("1");
        xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null) {
            alert("2");
            alert("Browser does not support HTTP Request");
            return;
        }
        var url = "getuser.jsp";
        url = url + "?emp_id=" + emp_value + "&firstname=" + fname + "&lastname=" + lname;

        xmlHttp.onreadystatechange = stateChanged;
        xmlHttp.open("GET", url, true);
        xmlHttp.send(null);

    } else {
        alert("Please Select Employee Id");
    }
}

function stateChanged() {
    alert("3");
    document.getElementById("txtfirstname").value = "";
    document.getElementById("txtmobileno").value = "";
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {

        alert("4");
        var showdata = [];
        showdata = xmlHttp.responseText;
        alert("qqqqqqqqq" + showdata.length);
        var i;
        for (i = 0; i < showdata.length; i++) {
            alert("----------------" + showdata.get(i));
        }
    }
}

function GetXmlHttpObject() {
    var xmlHttp = null;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e) {
        //Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

< /script>

【问题讨论】:

    标签: javascript jsp arraylist


    【解决方案1】:

    首先,在getuser.jsp中改变

     request.setAttribute("top", addressLists1);
    

     session.setAttribute("top", addressLists1);
    

    然后在 second.jsp 中类似

     ArrayList<String> addressLists1 = (ArrayList<String>)session.getAttribute("top");
    

    然后遍历它并将列表打印到您的 html/javascript 输出中。

    顺便说一句,如果您要在 JSP 中连接到数据库,那么至少应该将连接到数据库的两行代码移到您在 JSP 中使用的类中,而不是而不仅仅是在 JSP 本身中包含这些行。在 JSP 中包含数据库连接部分是一个非常糟糕的主意。如果您的数据库服务器名和密码在 JSP 中,并且 JSP 遇到运行时错误导致它向用户显示违规代码行,您的数据库密码可能会暴露给用户。

    【讨论】:

      猜你喜欢
      • 2014-03-09
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 2017-01-25
      • 2014-05-02
      • 2014-04-27
      • 2013-07-02
      • 2014-01-17
      相关资源
      最近更新 更多