0

我正在开发一个网络应用程序。我在网页上有一个选择标签,它下面有大约 10,000 个选项。

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

我想将与nw.collectNodes[i]相同的值分配给选项值属性,并希望从单击的选择框中获取名称。请建议。

4

2 回答 2

0

所以首先,你需要为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>");

从您的 servlet :

String[] values = request.getParameterValues( "nodes" );

并遍历数组以打印所有值:

   for(String s : values ) out.println(s+'');
于 2013-09-10T09:05:58.463 回答
0

只需将value属性添加到连接String中,确保转义引号。StringBuilder由于您创建了 10,000 个option元素,因此我还在示例中添加了一个。这应该有助于一些性能。

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>");

要将select标签的选定值发送/接收到 servlet,必须将选择标签添加到HTML表单中(ajax 也可以工作,但让它保持简单)。

<form action="/pathToServlet" method="POST">
   <select name="nodes">
       <option>About 10,000 of these, not writing them all</option>
   </select>
   <button type="submit">Submit</button>
</form>

因此,现在表单提交给 servlet,您可以在其中访问传递的内容,parameter例如:

protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
    String nodes = request.getParameter("nodes");
}
于 2013-09-10T09:03:34.460 回答