动态图表生成/从JSF 1.2将对象传递给Servlet
问题描述:
我正在尝试使用JFreeChart库动态生成图表并将它们显示给前端用户。我的项目使用JSF 1.2作为其视图技术,我们正在尝试确定显示BufferedImage
的策略。动态图表生成/从JSF 1.2将对象传递给Servlet
到目前为止,最好的选择似乎是使用servlet生成图并使用h:graphicImage
指向该位置。主要的问题是,如何将JSF中的对象传递给servlet,以便根据对象中的值生成动态图形?
答
让JSF沿自动生成的唯一键将它放入会话中,将该键作为请求参数或pathinfo传递给servlet,最后让servlet通过键将其从会话中删除并使用它。
JSF豆(时init或操作方法):
this.key = UUID.randomUUID().toString();
externalContext.getSessionMap().put(key, object);
JSF视图:
<h:graphicImage value="servleturl?key=#{bean.key}" />
的Servlet:
String key = request.getParameter("key");
Object object = request.getSession().getAttribute(key);
request.getSession().removeAttribute(key);
// ...
该解决方案对我们的方案来说可能是最好的,并且在我们进行第一次测试后工作得非常快。我们需要在可用于生成图形图表的对象中保存一组数据。这些数据不适合作为URL参数的一部分传递,因此我们需要留意会话中存储的内容,以便我们可以保持精简。 – rynmrtn 2011-01-22 03:25:05
不客气。 – BalusC 2011-01-22 03:25:37