Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

jsf 2 - How to pass a List to javascript in JSF

I am struggling with a JSF project. In my service, I retrieve a List of custom object (here Sales), and I have to pass it to my jsf view, specifically into the javascript, to make graphs.

My problem is, I don't understand how to send the data from the controller (my managed beans) to my view, and which tag to use in my view to retrieve it in my javascript.

I think I can pass my data like this, but I'm not sure

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";
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to create a JSON object that you'll assign to a JavaScript variable. To create JSON you may find useful to incorporate a library like Gson.

So, it'll look like:

var sales = #{bean.jsonList};

with Bean#getJsonList as:

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

Just don't forget that the script with such assignment must be handled by the FacesServlet.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...