繁体   English   中英

如何处理Servlet中发布的String数组?

[英]How do I handle a posted String array in servlet?

在我的表单中,用户可以在将表单发布到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中的复选框值数组?

从Servlet API文档中:

的getParameter

public java.lang.String getParameter(java.lang.String name)以字符串形式返回请求参数的值,如果该参数不存在,则返回null。 请求参数是与请求一起发送的额外信息。 对于HTTP Servlet,参数包含在查询字符串或发布的表单数据中。 仅在确定参数只有一个值时才应使用此方法。 如果参数可能具有多个值,请使用getParameterValues(java.lang.String)。

如果将此方法与多值参数一起使用,则返回的值等于getParameterValues返回的数组中的第一个值。

如果参数数据是在请求正文中发送的(例如在HTTP POST请求中发生),则直接通过getInputStream()或getReader()读取正文会干扰此方法的执行。

参数:name-指定参数名称的String返回:表示参数的单个值的String另请参见:getParameterValues(java.lang.String)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM