Jsf p:OverlyPanel不显示内容
在上面的代码片段覆盖面板中,不显示内容,只显示一个空面板,但是如果我用硬编码的值替换该值,如Jsf p:OverlyPanel不显示内容,jsf,primefaces,jsf-2.2,Jsf,Primefaces,Jsf 2.2,在上面的代码片段覆盖面板中,不显示内容,只显示一个空面板,但是如果我用硬编码的值替换该值,如value=“test”,我可以在覆盖面板中看到内容,当我用firebug检查页面时,我可以看到内容没有放在覆盖面板的div中。有人能帮上忙吗?试着像这样使用toString(): <h:form> <p:dialog> <p:outputPanel> <p:panelGrid>
value=“test”
,我可以在覆盖面板中看到内容,当我用firebug检查页面时,我可以看到内容没有放在覆盖面板的div中。有人能帮上忙吗?试着像这样使用toString():
<h:form>
<p:dialog>
<p:outputPanel>
<p:panelGrid>
<p:row>
<p:column>
<p:commandLink value="link" id="myLink"/>
<p:overlayPanel id="overPanel" for="myLink" >
<p:outputLabel id="linkPanel" value="#{bean.value}"/>
</p:overlayPanel>
</p:column>
</p:row>
</p:panelGrid>
</p:outputPanel>
</p:dialog>
</h:form>
我也犯了同样的错误,这解决了它。并尝试确保您在bean中具有重写字符串的方法。使
p:overlypanel
延迟加载可以解决问题。您可以通过在您的p:overlypanel
上使用dynamic=“true”
来实现它
此技术使p:overlypanel
的内容不会在页面加载本身上呈现,而是在显示p:overlypanel
之前呈现
还有一种方法是从p:commandLink
更新p:outputLabel
另一种方法是在
p:overlypanel
的widgetwar上使用客户端js函数loadContents()
。由于将覆盖层保留在datatable中,因此这可能不是一个可行的解决方案。这取决于如何将值设置为相应托管bean中的相应属性。检查,如果它真的设置了一个正确的值,并且在正确的时间段内。这些值设置正确,即使我可以在firebug中看到值,问题也不是在overlay panelUh的div中设置的!为什么不必要地使用
?相反,一个
就足够了。我想在弹出窗口中显示输出内容,这就是我使用OverlyPanelb的原因,但该值已经在字符串中,因此将字符串转换为字符串非常重要
<p:outputLabel id="linkPanel" value="#{bean.value.toString()}" />