3

我正在为一个 JSF 项目而苦苦挣扎。在我的服务中,我检索了一个自定义对象列表(这里是销售),我必须将它传递给我的 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";
}
4

1 回答 1

3

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

所以,它看起来像:

var sales = #{bean.jsonList};

Bean#getJsonList

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

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

于 2013-05-15T11:04:13.920 回答