在我的表单中,用户可以在将表单发布到servlet之前检查几个复选框:
<input type="checkbox" class="genre" name="genre[]" value="1"><label for="1">First Person Shooter</label><br>
<input type="checkbox" class="genre" name="genre[]" value="2"><label for="2">Sports</label><br>
<input type="checkbox" class="genre" name="genre[]" value="3"><label for="3">Action/Adventure</label><br>
<input type="checkbox" class="genre" name="genre[]" value="4"><label for="4">Educational</label><br>
<input type="checkbox" class="genre" name="genre[]" value="5"><label for="5">Puzzle</label><br>
<input type="checkbox" class="genre" name="genre[]" value="6"><label for="6">Real Time Strategy</label><br>
<input type="checkbox" class="genre" name="genre[]" value="7"><label for="7">Beat em ups</label><br>
<input type="checkbox" class="genre" name="genre[]" value="8"><label for="8">Survival Horror</label><br>
我使用AJAX调用将表单数据发布到servlet并序列化表单数据,如下所示:
$(".mainSurvey").submit(function(e){
e.preventDefault(); //STOP default action
var postData = $(".mainSurvey").serializeArray();
var botCatcher = $("#botCatcher").val();
if($(".mainSurvey input:checkbox:checked").length > 0 && botCatcher.length == 0){
$.ajax(
{
type: "POST",
url : "DatabaseService",
data : postData,
success: function(data)
{
// continue
},
error: function(jqXHR, textStatus, errorThrown)
{
// handle error
});
}else{
// handle error
}
});
我通常使用以下方式访问文本输入值:
String input = request.getParameter("input");
如何在发布后访问servlet中的复选框值数组?
答案 0 :(得分:1)
来自Servlet API文档:
的getParameter
public java.lang.String getParameter(java.lang.String name)返回 请求参数的值为String,如果参数为null 不存在。请求参数是随附发送的额外信息 请求。对于HTTP servlet,参数包含在查询中 字符串或发布的表单数据。 你应该只使用这种方法 确保参数只有一个值。如果参数可能有 不止一个值,使用getParameterValues(java.lang.String)。
如果将此方法与多值参数一起使用,则为该值 返回等于返回的数组中的第一个值 getParameterValues。强>
如果参数数据是在请求体中发送的,例如发生 使用HTTP POST请求,然后通过直接读取正文 getInputStream()或getReader()可能会干扰执行 这种方法。
参数:name - 指定参数名称的String 返回:表示参数的单个值的String 另外:getParameterValues(java.lang.String)