将值分配给选项标记值属性

时间:2013-09-10 08:59:17

标签: java jsp servlets option

我正在开发一个Web应用程序。我在网页上有一个选择标记,下面有大约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] 的值分配给选项值属性,并希望从单击的选择框中获取名称。请建议。

2 个答案:

答案 0 :(得分: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,必须将select标记添加到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");
}

答案 1 :(得分: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+'');