将java变量传递给javascript函数

将java变量传递给javascript函数,javascript,jsf,jsf-2,primefaces,Javascript,Jsf,Jsf 2,Primefaces,我需要将java变量传递给javascript函数。我的代码如下。想知道这是正确的方法吗 因为我在这里遇到了一些问题,当页面第一次加载时,点击按钮,chartData和categories是空的 我期待以下消息: chartData = [{"name":"Anne","data":[1.0,0.0,4.0]}, {"name":"Billy","data":[5.0,7.0,10000.0]}] categories = ["APPLES","BANANAS","OR

我需要将java变量传递给javascript函数。我的代码如下。想知道这是正确的方法吗

因为我在这里遇到了一些问题,当页面第一次加载时,点击按钮,chartData和categories是空的

我期待以下消息:

chartData = [{"name":"Anne","data":[1.0,0.0,4.0]},
             {"name":"Billy","data":[5.0,7.0,10000.0]}]
categories = ["APPLES","BANANAS","ORANGES"]

public String doLoadChartDataAction () {

    String _cat = "[{\"name\":\"Anne\",\"data\":[1.0,0.0,4.0]},{\"name\":\"Billy\",\"data\":[5.0,7.0,10000.0]}]";
    String _data = "[\"APPLES\",\"BANANAS\",\"ORANGES\"]";

    System.out.println("1.0 " + " _cat:" + _cat);
    System.out.println("1.0 " + " _data:" + _data);

    setCategories(_cat);
    setChartData(_data);

    return "";      
}


 <p:commandButton styleClass="commandButton" value="This" id="btnThis" action="#{pc_Test.doLoadChartDataAction}" 
    oncomplete="renderChart('container','line','Sample Chart','${pc_Test.chartData}', '${pc_Test.categories}');">   
 </p:commandButton>
chartData=[{“name”:“Anne”,“data”:[1.0,0.0,4.0]},
{“名称”:“比利”,“数据”:[5.0,7.010000.0]}]
类别=[“苹果”、“香蕉”、“橙子”]
公共字符串doLoadChartDataAction(){
字符串{u cat=“[{\'name\':\'Anne\',\'data\':[1.0,0.0,4.0]},{\'name\':\'Billy\',\'data\':[5.0,7.010000.0]}”;
字符串“数据=”[\“苹果”、“香蕉”、“橙子”];
System.out.println(“1.0”+“\u cat:”+\u cat);
System.out.println(“1.0”+“\u数据:”+\u数据);
设置类别(_cat);
setChartData(_数据);
返回“”;
}
公共字符串doLoadChartDataAction(){
字符串{u cat=“[{\'name\':\'Anne\',\'data\':[1.0,0.0,4.0]},{\'name\':\'Billy\',\'data\':[5.0,7.010000.0]}”;
字符串“数据=”[\“苹果”、“香蕉”、“橙子”];
System.out.println(“1.0”+“\u cat:”+\u cat);
System.out.println(“1.0”+“\u数据:”+\u数据);
//设置类别(_cat);
//setChartData(_数据);
RequestContext=RequestContext.getCurrentInstance();
addCallbackParam(“chartData”,_数据);
addCallbackParam(“类别”,_cat);
返回“”;
}
公共字符串doLoadChartDataAction(){
字符串{u cat=“[{\'name\':\'Anne\',\'data\':[1.0,0.0,4.0]},{\'name\':\'Billy\',\'data\':[5.0,7.010000.0]}”;
字符串“数据=”[\“苹果”、“香蕉”、“橙子”];
System.out.println(“1.0”+“\u cat:”+\u cat);
System.out.println(“1.0”+“\u数据:”+\u数据);
//设置类别(_cat);
//setChartData(_数据);
RequestContext=RequestContext.getCurrentInstance();
addCallbackParam(“chartData”,_数据);
addCallbackParam(“类别”,_cat);
返回“”;
}

我认为加载页面时,可以对服务器端进行ajax调用,然后服务器(java)返回所需的数据;在javascript中,可以使用数据进行处理。i、 e.java文件返回一个json对象,回调处理使用json对象。@Robin正确吗?是否要从java中获取一个json对象,然后在中处理javascript@Robin谢谢你的评论。我设法用下面修改的代码来解决这个问题。(:@BholaVishwakarma谢谢你的评论。我用下面修改过的代码解决了这个问题。(:我想当你加载页面时,你可以先对服务器端进行ajax调用,然后再对服务器(java)进行ajax调用)返回您想要的数据;在javascript中,您可以使用该数据进行处理。例如,java文件返回一个json对象,回调处理使用json对象。@Robin是正确的,您想要一个json对象形式的java,然后在java中处理吗javascript@Robin谢谢你的评论。我用下面修改过的代码解决了这个问题。(:@BholaVishwakarma谢谢你的评论。我用下面修改的代码解决了这个问题。(:
public String doLoadChartDataAction () {

String _cat = "[{\"name\":\"Anne\",\"data\":[1.0,0.0,4.0]},{\"name\":\"Billy\",\"data\":[5.0,7.0,10000.0]}]";
String _data = "[\"APPLES\",\"BANANAS\",\"ORANGES\"]";

System.out.println("1.0 " + " _cat:" + _cat);
System.out.println("1.0 " + " _data:" + _data);

//setCategories(_cat);
//setChartData(_data);

RequestContext context = RequestContext.getCurrentInstance();
context.addCallbackParam("chartData", _data);
context.addCallbackParam("categories", _cat);

return "";      
}

<p:commandButton styleClass="commandButton" value="This" id="btnThis" action="#{pc_Test.doLoadChartDataAction}" 
oncomplete="renderChart('container','line','Sample Chart', args.chartData, args.categories);">