如何使用jsp在javascript变量中存储mysql字符串

时间:2015-05-27 17:52:04

标签: javascript mysql jsp

我想将mysql字符串存储在javascript数组变量中。我在服务器端使用jsp。

我试过三种方式。这三个都不起作用。需要一些帮助。

尝试-1

<script>
        var name = [];
  <%
        st=con.prepareStatement("select name from company");
        rs=st.executeQuery();
        while(rs.next()){
            String s = rs.getString(1);
  %>
            name.push(<%=s%>);          
  <%
        } 
  %>
</script>

尝试-2

<script>
        var name = [];
  <%
        st=con.prepareStatement("select name from company");
        rs=st.executeQuery();
        while(rs.next()){
  %>
            name.push(<%=rs.getString(1)%>);            
  <%
        } 
  %>
</script>

尝试-3

<script>
        var name = [];
  <%
        st=con.prepareStatement("select name from company");
        rs=st.executeQuery();
        while(rs.next()){
  %>
            name.push(<%out.print(rs.getString(1));%>);         
  <%
        } 
  %>
</script>

处理后,所有三次尝试都显示相同的结果和错误。

解释代码:

<script>
        var name = [];
        name.push(tcs);
        name.push(wipro);
</script>

错误:

ReferenceError: tcs is not defined

1 个答案:

答案 0 :(得分:1)

你应该在你的字符串周围添加"你应该javascript编码它(我认为apache有一个库可以为你做这个):

<script>
        var name = [];
  <%
        st=con.prepareStatement("select name from company");
        rs=st.executeQuery();
        while(rs.next()){
            String s = StringEscapeUtils.escapeJavaScript(rs.getString(1));
  %>
            name.push("<%= s %>");          
  <%
        } 
  %>
</script>

尝试使用此Apache库来基于javascript规则转义java字符串:StringEscapeUtils

Javascript正试图将name.push(tcs); tcs解释为一个变量,在这种情况下tcs尚未声明或初始化它未定义。相反,您希望javascript将tcs解释为字符串,因此您需要围绕它"tcs"或在您的案例中"<%= s %>"引用。