我有一个HTML表单,我有复选框。在Servlet中,我试图用值打印所有参数名称,如果它没有值,即它未经检查,则打印“BLANK”,但令人惊讶的是,如果参数本身没有值/未经检查,则不会打印参数本身。代码:
Enumeration paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()) {
String paramName = (String)paramNames.nextElement();
out.print("<tr><td>" + paramName + "</td>\n<td>");
String[] paramValues = request.getParameterValues(paramName);
if(paramValues.length == 0)
out.println("BLANK"); //Why does this not work?
// Read single valued data
if (paramValues.length == 1) {
String paramValue = paramValues[0];
if (paramValue.length() == 0)
out.println("<i>No Value</i>");
else
out.println(paramValue);
}
else {
// Read multiple valued data
out.println("<ul>");
for(int i=0; i < paramValues.length; i++) {
out.println("<li>" + paramValues[i]);
}
out.println("</ul>");
}
}
out.println("</tr>\n</table>\n</body></html>");
}
答案 0 :(得分:1)
在表单帖子中选中不的复选框是 NOT 作为参数发送。只有已选中复选框才会在HTTP POST请求中发布。
如果你想发布&#34;未选中&#34;复选框,你将不得不一个小小的黑客。请参阅此SO post。
答案 1 :(得分:0)
而不是手动查找每个属性使用JSTL
标签,您可以在其中指定java类并使用与表单相同的字段名称,并且值直接映射到bean