如何将List传递给JSF中的javascript

时间:2013-05-15 09:43:24

标签: javascript jsf-2

我正在努力解决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";
}

1 个答案:

答案 0 :(得分:2)

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

所以,它看起来像:

var sales = #{bean.jsonList};

Bean#getJsonList为:

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

请不要忘记具有此类作业的脚本必须由FacesServlet 处理。