繁体   English   中英

如何在 JSF 中将列表传递给 javascript

[英]How to pass a List to javascript in JSF

我正在为一个 JSF 项目而苦苦挣扎。 在我的服务中,我检索了一个自定义对象列表(这里是 Sales),我必须将它传递给我的 jsf 视图,特别是传递给 javascript,以制作图表。

我的问题是,我不明白如何将数据从控制器(我的托管 bean)发送到我的视图,以及在我的视图中使用哪个标签在我的 javascript 中检索它。

我想我可以像这样传递我的数据,但我不确定

public String passData() {
    List<Sales> bestSelling = saleService.getBestSellingProduct(null, null, null, null);
    List<Sales> worstSelling = saleService.getWorstSellingProduct(null, null, null, null);

    FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("bestSelling", bestSelling);
    FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("worstSelling", worstSelling);

    return "./all.jsf?faces-redirect=true";
}

您需要创建一个将分配给 JavaScript 变量的 JSON 对象。 要创建 JSON,您可能会发现合并像Gson这样的库很有用。

所以,它看起来像:

var sales = #{bean.jsonList};

使用Bean#getJsonList作为:

public String getJsonList() {
     return (sales == null) ? "" : new Gson.toJson(sales);
}

只是不要忘记具有此类分配的脚本必须由FacesServlet处理

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM