如何使用绑定动态内容?

2024-07-03

我用<p:media>显示静态 PDF 内容。

<p:media value="/resource/test.pdf" 
         width="100%" height="300px" player="pdf">  
</p:media>

如何更改它以显示动态内容?


就像在<p:graphicImage>, the value属性可以指向返回的 bean 属性StreamedContent。这只需要一个特殊的 getter 方法,原因在下面关于使用的答案中详细解释<p:graphicImage>使用数据库中的动态资源:使用 p:graphicImage 和 StreamedContent 显示数据库中的动态图像 https://stackoverflow.com/questions/8207325/display-image-from-database-with-pgraphicimage/12452144#12452144.

在您的特定示例中,它看起来像这样:

<p:media value="#{mediaManager.stream}" width="100%" height="300px" player="pdf">
    <f:param name="id" value="#{bean.mediaId}" />
</p:media>

With

@ManagedBean
@ApplicationScoped
public class MediaManager {

    @EJB
    private MediaService service;

    public StreamedContent getStream() throws IOException {
        FacesContext context = FacesContext.getCurrentInstance();

        if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {
            // So, we're rendering the HTML. Return a stub StreamedContent so that it will generate right URL.
            return new DefaultStreamedContent();
        } else {
            // So, browser is requesting the media. Return a real StreamedContent with the media bytes.
            String id = context.getExternalContext().getRequestParameterMap().get("id");
            Media media = service.find(Long.valueOf(id));
            return new DefaultStreamedContent(new ByteArrayInputStream(media.getBytes()));
        }
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用绑定动态内容? 的相关文章

随机推荐

  • Ionic 4 导航组件没有 Angular

    真的很喜欢新的 ionic 4 组件 尤其是 NO Angular 但问题是 我像这样使用 ion nav navElRef push second page 动画不对啊 看来我没有设置正确的参数或类名或其他东西 是否有关于如何在没有角度的
  • 如何在sqlite3中向整列插入相同的值?

    我需要将文本插入到表中的整个列中 列有 200 行 我需要将相同的值插入到同一列的整个 200 行中 我怎么能这样做呢 UPDATE Table SET Column value 只是没有 WHERE 子句
  • 如何在sqlite3中向整列插入相同的值?

    我需要将文本插入到表中的整个列中 列有 200 行 我需要将相同的值插入到同一列的整个 200 行中 我怎么能这样做呢 UPDATE Table SET Column value 只是没有 WHERE 子句
  • 长时间保持数据库连接打开是否安全

    我有一个连接到远程数据库的 net 客户端应用程序 在客户端的生命周期 小时 内保持单个连接打开是否安全 如果我有多个 10 或 100 个客户端正在运行 这个答案是否成立 这样做绝对是安全的 这就是客户端 服务器应用程序的工作方式 如果您
  • 长时间保持数据库连接打开是否安全

    我有一个连接到远程数据库的 net 客户端应用程序 在客户端的生命周期 小时 内保持单个连接打开是否安全 如果我有多个 10 或 100 个客户端正在运行 这个答案是否成立 这样做绝对是安全的 这就是客户端 服务器应用程序的工作方式 如果您
  • 为什么 JavaScript 中没有更频繁地使用 Try/Catch? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 为什么 JavaScript 中没有更频繁地使用 Try/Catch? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Symfony2 防火墙需要很长时间

    我遇到了 Symfony2 防火墙组件在某些请求上花费很长时间的问题 我注意到它主要发生在 AJAX 请求期间 并且是非常具体的请求 当我在学说中使用 LIKE 语句搜索实体时 不确定这是否重要 但这就是我注意到的 稍后 1 或 2 秒后
  • Symfony2 防火墙需要很长时间

    我遇到了 Symfony2 防火墙组件在某些请求上花费很长时间的问题 我注意到它主要发生在 AJAX 请求期间 并且是非常具体的请求 当我在学说中使用 LIKE 语句搜索实体时 不确定这是否重要 但这就是我注意到的 稍后 1 或 2 秒后
  • XHR 上传进度从一开始就是 100%

    我正在尝试新的 XMLHTTPRequestUpload 功能将一些文件上传到 php 脚本 它大部分工作正常 上传开始 我得到完成响应等 但进度似乎不起作用 查看 event loaded 值 在 Firefox 中 我似乎得到了 0 和
  • 如何从android数据库中检索大BLOB?

    我像这样将图像字节保存到数据库中 byte imagebyte getBytes bitmap boolean isuploaded myDb insertData all receipts imagebyte public byte ge
  • 如何从android数据库中检索大BLOB?

    我像这样将图像字节保存到数据库中 byte imagebyte getBytes bitmap boolean isuploaded myDb insertData all receipts imagebyte public byte ge
  • 单元测试理念

    我有一个 食谱 方法 我正在尝试使用 TDD 编写它 它基本上调用不同的方法 并偶尔根据这些方法的结果做出决策 public void HandleNewData Data data var existingDataStore dataPr
  • Kotlin 反射 - 获取类的所有字段名称

    我如何获取 Kotlin 数据类的列表declaredFields 就像Java的getDeclaredFields 如果这是可能的 是否也可以过滤public and private领域 就像Java的Modifier isPrivate
  • 如何在我的装置中加载 HABTM 与外键关系?

    我有以下两个模型 学校和用户 以及它们之间的 HABTM 关系 并带有连接表 在这个连接表中 引用User表的外键没有被调用user id but student id class School lt ActiveRecord Base h
  • 膝盖安装问题:ModuleNotFoundError:没有名为“kneed”的模块

    我需要使用from kneed import KneeLocator用于 Python 中的拐点检测 但每次我尝试在关闭 Jupyter 笔记本后导入模块时 我总是得到ModuleNotFoundError No module named
  • r - 按每天变化的日期过滤行

    该数据集为 1 列 包含数千行 其中包含日期 2021 09 23T06 38 53 458Z 使用以下代码 我可以对昨天的行进行子集化 rows from yesterday lt df df timestamp like 2021 09
  • 数组长度和未定义的索引

    我只是想了解 Javascript 数组是如何工作的 但我这里有一个复杂的问题 首先我创建了我的数组 var arr 并在其中设置一些元素 arr 5 a thing arr 2 undefined 我认为我应该有一个大小为 2 的数组 因
  • 1. 扫描当前(而不是下一个)行位置。 2.扫描X行(Java初学者)

    假设我有一个文本文件 我正在从 输入文本 File file new File example txt Scanner inputFile new Scanner file 如果我想引用下一行文本我会这样做 inputfile nextLi
  • 如何使用绑定动态内容?

    我用