如何从jsp访问List到Javascript

时间:2014-08-21 11:21:31

标签: java javascript list jsp

我正在尝试传输从Controller传递的列表(到jsp),并将所述列表从jsp传递给javascript。

列表中的数据应替换X(日期)和Y的值。

var data = {
    values:[
        { X: "8/7/12",  Y: 21 },
        { X: "8/8/12",  Y: 32 },
        { X: "8/9/12",  Y: 62 },
        { X: "8/10/12", Y: 8  },
        { X: "8/11/12", Y: 40 },
        { X: "8/12/12", Y: 12 },
        { X: "8/13/12", Y: 14 },
        { X: "8/14/12", Y: 72 },
        { X: "8/15/12", Y: 11 },
        { X: "8/16/12", Y: 98 },
    ]};



我希望传递的清单包含以下内容:
1.字体版本的LocalDate(Jodatime) - 用于X轴
2.分数 - 对于y轴

我已经看到并尝试了几种基于各种论坛在线情况的解决方案,但它们都没有按照预期的方式运行。我也试过传递并行数组,但它们似乎都没有用。

2 个答案:

答案 0 :(得分:0)

您可以从JSPJavascript

执行此操作
var data = { values:[
        { X: <%=x[0]%>, Y: <%=y[0]%> },
        { X: <%=x[1]%>, Y: <%=y[1]%> },
        ...
    ]};

注意这里我使用X和Y数组作为值,你可以使用任何数据结构到jsp中,然后将它变成javascript。

或者如果您要将数据从controller传递到jsp,则可以使用 JSTL 来迭代数据并将其传递给javascript。

答案 1 :(得分:0)

在这种情况下,我更喜欢将Java List对象序列化为控制器中的JSON字符串,并将该字符串传递给jsp。假设您的列表包含类似于此的类的实例,

public class MyObject {
    protected String X;
    protected int Y;

    // getters, setters, other methods and fields...
}

您可以使用GsonJackson等库来序列化控制器中的列表。

List<MyObject> list = new ArrayList<MyObject>();
// add some objects to the list...

String json = new Gson().toJson(list);
request.setAttribute("values", json);

在你的jsp中,values请求属性是一个表示JSON中完整javascript对象的字符串。

var data = {
    values: ${values}
};