我正在努力解决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";
}
答案 0 :(得分:2)
您需要创建一个您将分配给JavaScript变量的JSON对象。要创建JSON,您可能会发现合并像Gson这样的库很有用。
所以,它看起来像:
var sales = #{bean.jsonList};
以Bean#getJsonList
为:
public String getJsonList() {
return (sales == null) ? "" : new Gson.toJson(sales);
}
请不要忘记具有此类作业的脚本必须由FacesServlet
处理。