Jsf 有没有办法让Primefaces中的graphicimage执行;“价值”;仅按需使用方法?
我想展示一个带有几个缩略图的自定义图库。单击其中一个按钮时,将显示一个覆盖面板,其中包含一个图形图像,该图像的质量更高。由于高质量的图像大约每个5MB,我只想按需加载它们 我已经尝试过使用“rendered”属性,但这似乎也不起作用。我还使用javascript函数尝试了“onclick”,但也没有得到预期的结果Jsf 有没有办法让Primefaces中的graphicimage执行;“价值”;仅按需使用方法?,jsf,primefaces,graphicimage,Jsf,Primefaces,Graphicimage,我想展示一个带有几个缩略图的自定义图库。单击其中一个按钮时,将显示一个覆盖面板,其中包含一个图形图像,该图像的质量更高。由于高质量的图像大约每个5MB,我只想按需加载它们 我已经尝试过使用“rendered”属性,但这似乎也不起作用。我还使用javascript函数尝试了“onclick”,但也没有得到预期的结果 <p:graphicImage value="#{dataHolderBean.imageHolderBean.loadFullSizeImage()}" class="cent
<p:graphicImage value="#{dataHolderBean.imageHolderBean.loadFullSizeImage()}"
class="centeredImageOverlay" cache="false">
<f:param name="currentImageId" value="#{images.imageId}" />
</p:graphicImage>
我只想在单击另一个图像时调用value=“#{dataHolderBean.imageHolderBean.loadFullSizeImage()}”此方法 为什么不寻找加载覆盖面板内容的解决方案?对我来说,这听起来像是一个更通用的解决方案(里面的任何东西都会被懒散地加载),你站在那里,而且有更高的可能性已经实现了 从
p:overlypanel
的PrimeFaces展示区(强调矿山)
覆盖面板
OverlayPanel是一个通用容器组件,可以覆盖其他组件
第页上的组件。显著特点是定制定位,
可配置的事件和效果延迟内容加载以减少页面
启用时,动态选项也支持加载时间
OverlyPanel将在显示内容之前加载内容。
从PrimeFaces文档中
动态模式
在这种情况下,动态模式允许延迟加载内容
面板的模式内容不会在页面加载时呈现,而只是加载
在显示面板之前。此外,内容被缓存,以便连续显示
不要再次加载内容。此功能有助于降低成本
页面大小和减少页面加载时间
因此,延迟加载是通过dynamic
属性完成的,该属性甚至在
...
您可以使用bean中内置的LazyDefaultStreamedContent来延迟初始化流:
streamedContent = new LazyDefaultStreamedContent("application/vnd.ms-excel", "myExcel") {
@Override
protected InputStream initStream()
{
return new FileInputStream(...);
}
};
为什么不寻找一个加载覆盖面板内容的解决方案呢?听起来像是一个更通用的解决方案,而且已经存在的可能性更高implemented@Kukeltje这是个好主意!但是仍然找不到有效的解决方案:/always,always,always,always尝试在特定问题后面看到更一般的问题。那么,找到解决方案的机会就大得多了。PF showcase有一个有效的解决方案…非常感谢!你真的帮了我。从现在起,我还将尝试寻找更多通用的解决方案。我已经为此工作了好几天了,没什么进展:/干杯!这也适用于图像吗?那什么时候装?我有点看不到(这很可能与我有限的观点/知识有关)这将解决上述问题中的某些问题。如果您可以添加一些解释,那将非常好(并且值得一次投票)。好吧,这并不能解决我的问题,但它通过替换我的“DefaultStreamedContent”帮助了我。非常感谢。
streamedContent = new LazyDefaultStreamedContent("application/vnd.ms-excel", "myExcel") {
@Override
protected InputStream initStream()
{
return new FileInputStream(...);
}
};