【问题标题】:How to detect a length of array in a request variable?如何检测请求变量中的数组长度?
【发布时间】:2016-10-26 05:50:36
【问题描述】:

请求变量${taskInArray} 是一个包含值的数组。 如何使用 javascript 检测该数组的长度? 编译器显示错误。

<script>

    var length;

    $(document).ready(function() {

        length = ${taskInArray}.length; //Syntax error on token "}", delete this token

    }); //Syntax error on token "}", delete this token

</script>

【问题讨论】:

  • 什么是 ${taskInArray} ,是 JSP 值还是 JS 值
  • Request variable ${taskInArray} is an array - 不是在javascript中它不是
  • @JaromandaX 这是一个 JSP 请求值
  • @rozerro javascript 在浏览器中是什么样子的
  • @JaromandaX length = [Ljava.lang.String;@20a11899.length; 此行显示错误

标签: javascript jsp


【解决方案1】:

您正在混合两种不同的代码。关键是要实现,wherewhen每一个代码被执行——当页面被请求和渲染时(即before响应发送到浏览器)和浏览器中的Javascript,浏览器收到已经生成的响应。

因此,在服务器端,您需要将 taskInArray 转换为 JSON 字符串,并将此字符串传递给您的(浏览器端)JavaScript 代码。例如。使用GSON 库:

import com.google.gson.Gson;
// ...
String jsonTaskInArray = new Gson().toJson(taskInArray);
request.setAttribute('jsonTaskInArray', jsonTaskInArray);

然后,在 JavaScript 中

var tasks = ${jsonTaskInArray} ; 
length = tasks.length;

【讨论】:

    猜你喜欢
    • 2018-09-28
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    相关资源
    最近更新 更多