我正在开发一个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] 的值分配给选项值属性,并希望从单击的选择框中获取名称。请建议。
答案 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+'');