【问题标题】:jQuery + Spring- AJAX FormData submission returning null with request.getParameterjQuery + Spring- AJAX FormData 提交返回 null 并带有 request.getParameter
【发布时间】:2016-07-22 22:55:19
【问题描述】:

所以,我的表单看起来像这样:

<form role="form" method="post" id="upload-form" action="">
    <select class="form-control" name="category" style="margin: 0.5em">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>
    <button type="submit">Submit</button>
</form>

我的 JavaScript 代码是这样的:

$("button").click(function(e){
    e.preventDefault();

    var request = $.ajax({
        url: '/pos/csvUpload,
        data: new FormData(document.getElementById("upload-form")),
        enctype: 'multipart/form-data',
        processData: false,
        contentType: false,
        type: 'POST'
    });

    // request callbacks...
});

我的 Java 代码是这样处理的:

@RequestMapping(value = "/pos/csvUpload", method = RequestMethod.POST)
public ResponseEntity<String> csvUpload(Model model,
                            MultipartHttpServletRequest request,
                            HttpServletResponse response
) throws Exception
{
    String category = request.getParameter("category");
    ...
}

(注意我有 MultipartHttpServletRequest;这对我来说是必要的,因为我有一个文件输入,它使用该类来解析它。)

当我在网上浏览教程和更多 SO 帖子时,他们都告诉我使用 request.getParameter。但是,当我使用它时,它会返回null

  1. 我正在使用 FormData 类
  2. 我正在使用 AJAX 发送 FormData
  3. 我正在使用 Spring MVC
  4. 我正在使用 MultipartHttpServletRequest 类

【问题讨论】:

    标签: java jquery ajax spring


    【解决方案1】:

    当您使用 listBox 时,请使用 HttpServletRequest#getParameterValues(), 这将返回一个 array 值而不是单个值。

    你可以参考java文档here

    String[] category = request.getParameterValues("category");
    

    【讨论】:

    • 但我只想要所选选项的值。我该如何处理数组?
    • 我仔细阅读了您的代码,根据可用的信息,其他一切看起来都不错,但我对此表示怀疑。如果这也返回 null,那么问题可能出在此问题中不可用的其他地方。
    • “但我怀疑这一行”。你什么意思?你怀疑你的答案?
    • 好的,但我的问题是,如何在下拉列表中获取 selected 选项的值?
    • 你可以忽略这个答案,如果你不想尝试,再见。
    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 2022-06-11
    • 2018-11-13
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多