Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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 为选项标记值属性赋值_Java_Jsp_Servlets_Option - Fatal编程技术网

Java 为选项标记值属性赋值

Java 为选项标记值属性赋值,java,jsp,servlets,option,Java,Jsp,Servlets,Option,我正在开发一个web应用程序。我在网页上有一个select标签,下面有大约10000个选项 out.println("<select name=nodes>"); for(int i=0;i<nw.collectNodes.length;i++) { out.println("<option>"+nw.collectNodes[i]+"</option>"); } o

我正在开发一个web应用程序。我在网页上有一个select标签,下面有大约10000个选项

out.println("<select name=nodes>");
        for(int i=0;i<nw.collectNodes.length;i++)
        {
            out.println("<option>"+nw.collectNodes[i]+"</option>");
        }
        out.println("/<select>");
out.println(“”);

对于(int i=0;i只需将
value
属性添加到连接的
String
中,确保转义引号。我还向示例中添加了
StringBuilder
,因为您创建了10000个
选项
元素。这应该对性能有所帮助

StringBuilder sb = new StringBuilder();
out.println("<select name=\"nodes\">");
for(int i=0;i<nw.collectNodes.length;i++)
{
    sb.append("<option value=\""+ nw.collectNodes[i]+"\">"+nw.collectNodes[i]+"</option>");
}
out.println(sb.toString());
out.println("/<select>");
因此,现在表单提交到servlet,您可以在其中访问传递的
参数
,如:

protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
    String nodes = request.getParameter("nodes");
}

因此,首先,您需要将
value
属性添加到您的选项中,如果没有该属性,servlet中的值将始终为空:

    out.println("<select name=nodes>");
    for(int i=0;i<nw.collectNodes.length;i++)
    {
        out.println("<option value='"+nw.collectNodes[i]+"'>"+nw.collectNodes[i]+"</option>");
    }
    out.println("<select>");
并在数组上迭代以打印所有值:

   for(String s : values ) out.println(s+'');

第一部分很简单,只需为选项添加值。如何捕获选择框上的单击事件取决于您的库(仅JS、jQuery、Mootools等)请在您的问题中指定它正在工作。但是我如何捕获选定的值并将其发送到servlet。我在select标记中的name属性周围添加了引号。这可能会有所帮助。不是真的……如果我在public void service()中编写此代码,{}..?是的,它会的。它应该在servlet的post方法中。实际上,我如何获得单击的值,因为我的要求是,我必须将所选的值传递给where子句以便进一步检索。@SaurabhDeshpande抱歉,它是getParameterValues而不是getParameter。欢迎{OwenGrzegorek}{AimeeHockenbrock}Submit null是否有包含NeoServlet.java的名为demo的包?如果是,我认为您的路径有问题:
我将hv pkg作为demo-sampServlet.java在您的表单中,将操作文件更改为namePackage.FileName而不包含.java
String[] values = request.getParameterValues( "nodes" );
   for(String s : values ) out.println(s+'');