java - 如何将 string[] 发送到 spring Controller ?

标签 java javascript jquery http-request-parameters

我有以下 JQuery 代码,它将一些请求参数发送到我的 Spring MVC Controller 。对于某些参数,我应该获得多个值。

 $('#tb-email').click(function(event) {
     var base, data, formats, recipients, reportSource, reportSourceType;
     if ($(this).parent('li').hasClass('disabled')) {
         return false;
     }
     base = "<base href=\"" + window.location.protocol + "//" + window.location.host + window.DashboardGlobals.baseUrl + "\">";
     data = $('html').clone().find('script').remove().end().find('nav').remove().end().find('#dashboardCanvas').removeClass('dashboardCanvas').end().find('head').prepend(base).end().html();
     data = encodeURIComponent(Base64.encode('<html>' + data + '</html>'));
     $.post(window.DashboardGlobals.sendMail, {
         formats: ['png', 'pdf'],
         recipients: ['abc@xyz.com', 'xyz@abc.com'],
         reportSource: data, //Base64 data
         reportSourceType: 'adhoc',
         reportName: 'DataQualityApp'
     });
     event.preventDefault();
 });

当点击tb-email时,请求被提交到某个 Controller ,该 Controller 保存在DashboardGlobals变量中。

在服务器端,我编写了以下 Java 代码来获取参数格式和接收者的多个值。

public @ResponseBody String process(@RequestParam("formats") String[] formats, @RequestParam("recipients") String[] recipients, @RequestParam("reportSource") String reportSource, @RequestParam("reportSourceType") String reportSourceType, HttpServletRequest request) {
        ...Some Processing....
    return null;
}

我检查了格式收件人长度,均为1。

我什至尝试使用

获取值
String[] formats = request.getParameterValues("formats");
String[] recipients = request.getParameterValues("recipients");

我仍然在数组中获取单个值。长度还是一?

出了什么问题?

最佳答案

你可以尝试这个,spring Controller 可以将csv作为数组或列表:

$.post(window.DashboardGlobals.sendMail, {
     formats: ['png', 'pdf'].join(","),//<-- create csv string
     recipients: ['abc@xyz.com', 'xyz@abc.com'].join(","),//<-- create csv string
     ...
});

或者

$.post(window.DashboardGlobals.sendMail, {
     formats: 'png,pdf',
     recipients: 'abc@xyz.com,xyz@abc.com',
     ...
});

关于java - 如何将 string[] 发送到 spring Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25637835/

相关文章:

jquery 基于单选按钮启用/禁用文本框

Java Sprite 应该与 Data Structure 合并

java - 使用createOntologyModel时出现异常

javascript - 在 HTML5 Canvas 上的触摸位置绘制一个圆圈

javascript - 发送包含浏览器功能和屏幕尺寸等的电子邮件

javascript - 在单击的单选按钮上追加输入框的文本

Jquery .each,删除 $(this)?

java - 无法获取 struts.xml 以连接到 struts-2.0.dtd

java - Ant,java类输出重定向

javascript - 尽管重新定义,仍删除完整对象