servlet中的数组为null

时间:2015-12-15 11:59:45

标签: javascript java arrays jsp servlets

我正在尝试使用javascript函数创建数组到我的java类。

在我的java类中,这个数组是一个空值。

这是我的jsp代码,

            <input type="button" value="Submit" onClick="submit()" />

                <script>
                    var a = "I am A"
                    var b = "I am B"
                    var c = "I am C"
                    var arr = [a,b,c];

                    function submit() {
                        $.ajax({

                            method : "POST",
                            url : 'myServlet',
                            dataType : "text/html",
                            data : {sts:arr}
                            success : function(resp) {
                            },
                            error : function(data) {
                            },
                        });
                    }

                </script>
            <!--  </form> -->
            </body>

            </html>

我的java类访问数组,

            protected void doPost(HttpServletRequest request, HttpServletResponse response) {               
                String[] n=request.getParameterValues("sts");   
                System.out.println(n);
            }

还尝试了以下

            protected void doPost(HttpServletRequest request, HttpServletResponse response) {               
                String[] n=request.getParameterValues("sts[]");     
                System.out.println(n);
            }

两者都只打印null而不是数组。

有人能说出错的地方吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

当您在http请求中发送arr为data:{arr:arr}

签入开发者控制台,发送为

?arr%5B%5D=a&arr%5B%5D=b&arr%5B%5D=c

所以试试这个,

将arr作为字符串发送

data:{arr:arr.toString()}

然后在你的java代码中获取这样的数组,

String str = request.getParameter("arr");
String strA[] = str.split(",");

它正在运作......