从HTML表单获取Servlet中的所有参数

时间:2014-12-10 09:27:17

标签: java html servlets

我有一个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>");
}

2 个答案:

答案 0 :(得分:1)

在表单帖子中选中的复选框是 NOT 作为参数发送。只有已选中复选框才会在HTTP POST请求中发布。

如果你想发布&#34;未选中&#34;复选框,你将不得不一个小小的黑客。请参阅此SO post

答案 1 :(得分:0)

而不是手动查找每个属性使用JSTL

标签,您可以在其中指定java类并使用与表单相同的字段名称,并且值直接映射到bean