Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP:下拉列表2取决于下拉列表1_Java_Javascript_Jsp - Fatal编程技术网

Java JSP:下拉列表2取决于下拉列表1

Java JSP:下拉列表2取决于下拉列表1,java,javascript,jsp,Java,Javascript,Jsp,我在处理两个链接下拉列表时遇到困难,下拉列表1将从数据库中获取值,并且根据用户的选择,它将在下拉列表2中获取相关记录 我尝试在jsp中使用该代码来实现这一点,但它不起作用,许多人建议使用javascript。事实上,我不知道更多的abot JS,所以你能帮我吗 <select size="1" name="shop_category"><option value="NONE"> <% try {

我在处理两个链接下拉列表时遇到困难,下拉列表1将从数据库中获取值,并且根据用户的选择,它将在下拉列表2中获取相关记录

我尝试在jsp中使用该代码来实现这一点,但它不起作用,许多人建议使用javascript。事实上,我不知道更多的abot JS,所以你能帮我吗

<select size="1" name="shop_category"><option value="NONE">  
<%  
             try  
             {  
                            ResultSet rs=null;  
                            Statement st1=null;  
                            String query = "select Category_name, category_id from shop_category_lkup";  
                            st1 = conn1.createStatement();  
                            rs = st1.executeQuery(query);  
                            while(rs.next())                  
            {  
       String sz_Selected="";  
             if (rs.getString("category_id").equals(shop_category))  
             {  
               sz_Selected = "selected";  
             }  
%>  
            <option value="<%=rs.getString("category_id")%>" <%=sz_Selected%>>  
    <%=rs.getString("category_name")%></option>  
<%  
                            }  
            }  
            catch (Exception e) {  
  e.printStackTrace();  
}  
%>  
</select>  

<select size="1" name="rent_category"><option value="NONE">  
<%  
             try  
             {  
                            ResultSet rs=null;  
                            Statement st1=null;  
                            String query = "select r.Category_name, r.category_id from rent_category_lkup r, shop_categpry_lkup s where r.category_id=s.category_id";  
                            st1 = conn1.createStatement();  
                            rs = st1.executeQuery(query);  
                            while(rs.next())                  
            {  
       String sz_Selected="";  
             if (rs.getString("category_id").equals(rent_category))  
             {  
               sz_Selected = "selected";  
             }  
%>  
            <option value="<%=rs.getString("category_id")%>" <%=sz_Selected%>>  
    <%=rs.getString("category_name")%></option>  
<%  
                            }  
            }  
            catch (Exception e) {  
  e.printStackTrace();  
}  
%>  
</select>

假设scriptlet中的Java代码在客户端执行,这是一个根本性的错误

请看下面的图片。在这之后,您将能够更好地理解代码无法工作的原因。
此后,您应该尝试使用AJAX进行一些研究


如果所有这些都没有帮助的话,请再次发布,这样会更容易引导您通过。

我没有心情发布一个扩展的答案,因为@anirvan已经用两个我无法超越的词完美地总结了它:您正在犯一个根本性错误

要点:Java/JSP在Web服务器上运行,生成大量HTML/CSS/JS,并通过网络将其从Web服务器发送到webbrowser。webbrowser(如MSIE、Firefox等)单独检索和理解HTML/CSS/JS,并开始显示/应用/运行它。如果Java/JSP已经正确地完成了它的任务,那么在webbrowser中执行rightclick>View Source时不应该看到它的任何一行。让webbrowser(JavaScript)中的代码和webserver(Java/JSP)中的代码相互通信的唯一方法是让JavaScript发送HTTP请求,并让Java/JSP响应

以JavaScript发送HTTP请求可以通过以下几种方式完成:

  • 提交表单:
    document.getElementById('formId').Submit()
  • 更改窗口位置:
    window.location=http://www.google.com';
  • 激发一个Ajaxical请求:
    newXMLHttpRequest()
    等等
  • 下面是一组“必读”链接,以了解一个和另一个如何相互适应,以及如何使用一个和另一个:


    嗯,这个答案毕竟比我想的要长一点。。。不管怎样,希望它能有所帮助

    阿尤普。当我第一次学习JSP时,客户端和服务器端代码之间的区别也让我感到困惑;一旦你想清楚了,你就会省去很多麻烦,在死胡同里寻找糟糕的解决方案。如果您执意避免使用Javascript,那么当用户从列表1中选择一个选项并根据该选项重新创建页面时,您需要让表单提交;这当然是可行的,但会给您带来很多实现难题。为了根据用户的选择调整显示,Javascript是合适的工具。学习它。谢谢你,我会尽力的