javascript - 将 Javascript 字符串数组传递给 Spring Controller

标签 javascript spring

我在页面上创建了一个标签输入部分,并希望在用户输入标签时保存标签。

所以我试图将 Javascript 字符串数组传递给 spring Controller 。

这是填充 tagList 数组的 JavaScript。 它基本上给了我一个数组,如下所示:

var taglist = [];
a[0] = hi;
a[1] = bye;
a[2] = shoe;

这就是我尝试做的方式。

  $(':submit').click(function() {
                                alert("array is "
                                        + JSON.stringify(tagList));
                                alert("enter ajax");
                                $.ajax({
                                    type : "POST",
                                    url : "/json/tags",
                                    data : {
                                        tagList : a

                                    },
                                    success : function(response) {
                                        alert("good results")
                                    },
                                    error : function(e) {
                                        alert('Error: ' + e);
                                    }
                                });
                            })

列表填充得很好,就在我尝试将此列表传递给我的 Controller 时。

@RequestMapping(value = "/json/tags", method = RequestMethod.POST)
public String controllerMethod(@RequestParam(value="tagList[]") String[] myArray){
    System.out.println(myArray);

    if(myArray.length> 2){
        return "good";
    }else{
        return "bad";
    }
}

我正在关注这个tutorial它使用整数数组来完成此操作,但似乎无法使用字符串数组。

最佳答案

需要使用 GET 而不是 POST 以及其他一些小的更改

                  alert("array is " + JSON.stringify(tagList));

                                var methodPN = 'getTagName';
                                <c:url var="getTagUrl" value="/json/tags.json" />
                                var ajaxURL = '${getTagUrl}';
                                var photoid = '${photo.uploadedFile.id}';

                                   var sendData = {
                                            controllerMethod: methodPN,
                                            tagList : tagList,
                                            photoid : photoid
                                        };
                                alert("enter ajax");

                                $.ajax({
                                    url : ajaxURL,
                                    data : sendData,
                                    type : "GET",           
                                      beforeSend: function (xhr) {
                                            xhr.setRequestHeader("Accept", "application/json");
                                            xhr.setRequestHeader("Content-Type", "application/json");
                                        },
                                    success : function(response) {
                                        alert("good results")
                                    },
                                    error : function(e) {
                                        alert('Error: ' + e);
                                    }
                                });
                            })

还有我更新的 Controller

@RequestMapping(value = "/json/tags", method = RequestMethod.GET, params = "controllerMethod=getTagName",
        produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String controllerMethod(Model model,@RequestParam(value="tagList[]", required = true) String[] myArray, @RequestParam(value="photoid", required = true) long photoid){

关于javascript - 将 Javascript 字符串数组传递给 Spring Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43694176/

相关文章:

javascript - 单击子 div 时如何停止父 href 标签的重定向?

java - Log4j + Amqp 日志示例代码失败

java - Spring boot 能够接受 Enum 作为请求参数

java - 从 Web 服务器异步调用应用程序

java - 升级到 Spring Boot 2.0.2 后,Spring Security .permitAll() 不再有效

java - 如何动态绕过 spring-hibernate 中字段的验证

javascript - 使 sap.m.CustomTile 可根据分辨率调整大小,例如从 500px 到 320px

javascript 分解 VIN 号码

javascript - 在javascript中,我可以锁定一个var吗?

javascript - 3 Icheck 控制单个事件功能