Java JSF1.2中动态图表生成/向Servlet传递对象

Java JSF1.2中动态图表生成/向Servlet传递对象,java,jsf,servlets,Java,Jsf,Servlets,我试图使用JFreeChart库动态生成图表,并在前端向用户显示它们。我的项目使用JSF1.2作为它的视图技术,我们试图确定一种显示buffereImage的策略 到目前为止,最好的选择似乎是使用servlet生成图形,并使用h:graphicImage指向该位置。主要问题是,如何将对象从JSF传递到servlet,以便根据对象中的值动态生成图形 让JSF将它与自动生成的唯一键一起放入会话中,将该键作为请求参数或pathinfo传递给servlet,最后让servlet通过该键将其从会话中删除并

我试图使用JFreeChart库动态生成图表,并在前端向用户显示它们。我的项目使用JSF1.2作为它的视图技术,我们试图确定一种显示
buffereImage
的策略


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

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

JSFbean(在初始化或操作方法期间):

JSF视图:

<h:graphicImage value="servleturl?key=#{bean.key}" />

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

此解决方案可能最适合我们的场景,并且在第一次测试后运行得非常快。我们需要在一个对象中保存一组数据,该对象可用于生成图形图表。这些数据不适合作为URL参数的一部分传递,因此我们需要注意会话中存储的内容,以便保持精简。
<h:graphicImage value="servleturl?key=#{bean.key}" />
String key = request.getParameter("key");
Object object = request.getSession().getAttribute(key);
request.getSession().removeAttribute(key);
// ...