Solution trouvée! -------------------------------------------------- J'ai fait des recherches et trouvé la réponse à cette question.
Et la solution était d'utiliser une bibliothèque JSON (en ce moment j'utilise GSON) pour convertir des objets Java en objets JSON.
nouvelle Gson(). ToJson (someJavaObj)
Chaîne de retour. Il suffit d'envoyer la chaîne en tant que param et du côté client en utilisant la fonction eval de js ou la bibliothèque de certains js pour le transformer en JSON.
En fait, c'était plutôt propre et simple.
Désolé, je n'ai pas publié la solution. Voici la ma solution -
méthode d'action dans le backing bean -
public void retrievePieData() {
List<String> categories = new ArrayList<String>();
categories.add("Electronic");
categories.add("Food");
categories.add("Liguor");
categories.add("Stationary");
categories.add("Mechanical");
List<Integer> itemCounts = new ArrayList<Integer>();
itemCounts.add(5);
itemCounts.add(20);
itemCounts.add(1);
itemCounts.add(50);
itemCounts.add(10);
RequestContext reqCtx = RequestContext.getCurrentInstance();
reqCtx.addCallbackParam("categories", new Gson().toJson(categories));
reqCtx.addCallbackParam("itemCounts", new Gson().toJson(itemCounts));
}
PrimeFaces p: commandButton dans la vue -
<p:commandLink action="#{pieDataProvider.retrievePieData}" oncomplete="feedPieData(xhr, status, args);" value="Pie chart demo" update="pieData" />
fonction Javascript -
function feedPieData(xhr, status, args) {
var categories = eval('(' + args.categories + ')');
var itemCounts = eval('(' + args.itemCounts + ')');
options.xAxis.categories = categories;
var series = {
data: []
};
series.name = new Date().toString();
series.data = itemCounts;
options.series = [series];
chart = new Highcharts.Chart(options);
}
I apprécierait vraiment et accueillera toute suggestion ou opinion. Merci!
Veuillez poster votre solution comme réponse (même si c'est la réponse à votre propre question). –