在 jsf Web 应用程序上显示动态生成的图像。

发布于 2024-11-09 13:26:23 字数 422 浏览 0 评论 0原文

我有一个 Web 应用程序 (JSF 2.0),应该显示一些图像。

我在 this 线程中阅读并实现了一个图像 servlet 将图像发送到客户。 问题是,我没有使用数据库,也没有使用硬盘上的固定位置,只是返回一个 byte[] 的支持 java 方法(为了讨论,假设它是动态生成的)

我想知道是否有一个“标准”这个问题的解决方案,即如何在网页上显示动态生成的图像?

更新 我最终决定使用 RichFaces MediaOutput 组件。 在我看来,对于大多数情况来说,标记为正确的答案更可靠、更好。

I have a web app (JSF 2.0) that should display some images.

I read in this thread and implemented an image servlet to send images to the client.
Problem is, I am not using a database nor fixed location on the hard drive, just a backing java method returning a byte[] (For the discussion, let's say it's generated on the fly)

I am wondering if there is a 'standard' solution for this problem, namely, How do you display an image that is generated on the fly on a webpage?

UPDATE
I eventually decided to use RichFaces MediaOutput Component.
The answer that is marked as correct is, in my opinion, more robust and better for most cases.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萌辣 2024-11-16 13:26:23

byte[] 代码生成逻辑从支持 bean 移至图像 servlet。支持 bean 用于生成 byte[] 的所有基本参数都应作为请求参数传递给图像 servlet。例如,

<img src="imageservlet?param1=#{bean.param1}¶m2=#{bean.param2}" />

如果由于某种原因这确实不是一个选项,那么您可以做的最好的事情就是让支持 bean 将这些图像临时存储在临时磁盘或会话上,然后将其标识符作为请求参数传递,以便servlet 可以找到它并将其写入响应主体。

Move the byte[] code generating logic from the backing bean to the image servlet. All basic parameters which the backing bean uses to generate the byte[] should be passed as request parameters to the image servlet. E.g.

<img src="imageservlet?param1=#{bean.param1}¶m2=#{bean.param2}" />

If that is really not an option for some reason, best what you could do is to let the backing bean store those images temporarily on temp disk or session and then pass its identifier as request parameter so that the servlet can locate it and write it to the response body.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文