1

我的表单上有一个组件(id="theDocument"),我想在某些情况下以不同的方式呈现。

如果“ myBean.theDocument ”存在,我希望它呈现为p:commandLink,但如果它不存在,我希望它呈现为纯文本,例如h:outputText

这种情况会在文件上传后改变(上传后,myBean.theDocument将存在,所以我希望它呈现为p:commandLink)。

所以在我的p:fileUpload上,我有这样的事情:

<p:fileUpload fileUploadListener="#{myBean.handleFileUpload}" update="theDocument">  

我一直在使用 render="...",并且 update 可以很好地刷新现有组件的值。但是如何在 ajax 更新后更改组件的类型(或者我是否需要刷新整个页面并决定以更一般的方式呈现为文本或链接?

谢谢

4

1 回答 1

1

只需在一个公共父级中有两个有条件渲染的组件并更新公共父级。

<h:panelGroup id="theDocument">
    <p:commandLink ... rendered="#{not empty myBean.theDocument}" />
    <h:outputText ... rendered="#{empty myBean.theDocument}" />
</h:panelGroup>
于 2012-10-26T14:14:44.427 回答