0

我想在 d3.json 的帮助下从 primefaces 返回一个 JSON 到 d3,但它会抛出错误。

我的primefaces bean,

@ManagedBean
@SessionScoped
public class JsonBean implements Serializable {

private static final long serialVersionUID = 1L;

JsonExample jse=new JsonExample();


public void prepareChartDate() {

    RequestContext reqCtx = RequestContext.getCurrentInstance();
    reqCtx.addCallbackParam("chartData",jse.createJson());
}
}

jse.createJson() 将 json 作为

{"A":10,"B":20,"C":30,"weekdays":["Sun","Mon","Tues"]}

我在 .xhtml 文件中调用的 d3js 代码是

<script src="http://d3js.org/d3.v3.js"></script>

<script>
var data;
d3.json("#{jsonBean.prepareChartDate()}",function(error, json) {
  if (error) return console.warn(error);
  data = json;
  console.log(data);
  //console.log("hello");

});

</script>

当我在控制台中打印时,它在萤火虫中给出错误。 杉虫截图

4

1 回答 1

0

您不会以这种方式调用方法:#{jsonBean.prepareChartDate()}。你必须创建一个这样的类:

@ManagedBean
@SessionScoped
public class JsonBean implements Serializable {
  private static final long serialVersionUID = 1L;
  public String getChartDate() {
    String jsonData;
    /* jsonData valorization */
    return jsonData;
  }
}

并使用#{jsonBean.chartDate}调用该方法

于 2015-12-28T09:42:33.840 回答