从JSF 1.2生成动态图表/将对象传递给Servlet

我试图使用JFreeChart库动态生成图表并将其显示给前端的用户。 我的项目使用JSF 1.2作为其视图技术,我们正在尝试确定显示BufferedImage的策略。

到目前为止,最好的选择似乎是使用servlet生成图形并使用h:graphicImage指向该位置。 主要问题是,如何将对象从JSF传递给servlet,以便根据对象中的值生成图形?

让JSF沿着自动生成的唯一键将其放入会话中,将该键作为请求参数或pathinfo传递给servlet,最后让servlet通过密钥将其从会话中删除并使用它。

JSF bean(在init或action方法期间):

 this.key = UUID.randomUUID().toString(); externalContext.getSessionMap().put(key, object); 

JSF视图:

  

Servlet的:

 String key = request.getParameter("key"); Object object = request.getSession().getAttribute(key); request.getSession().removeAttribute(key); // ... 

就个人而言,我更愿意将数据作为URL的一部分传递,因为这样可以避免依赖服务器状态并使图表服务更容易外化。 但是,如果数据集很大,则可能会遇到一些实际限制 。