【问题标题】:Array in servlet as nullservlet 中的数组为空
【发布时间】:2016-03-21 05:07:55
【问题描述】:

我正在尝试获取数组,它是在我的 java 类的 javascript 函数中创建的。

在我的 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 而不是数组。

谁能说出错误发生在哪里?

提前致谢。

【问题讨论】:

  • var arr = [a,b,c]; a,b,c 是什么?
  • 很确定 abc 需要评估您的 JS 代码中的某些内容。
  • 它们是一个简单的字符串值。
  • 不应该是data : {"sts":arr}吗?还可以使用浏览器开发者控制台检查浏览器发送的内容,即是否发送了数组以及使用了哪个参数名称。
  • 我更新了我的问题

标签: javascript java arrays jsp servlets


【解决方案1】:

当您在 http 请求中以 data:{arr: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(",");

它正在工作......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 2016-11-02
    • 1970-01-01
    相关资源
    最近更新 更多