我对JSF和Primefaces来说相对较新,但我的任务是尝试减少遗留代码库中的AJAX请求数量。这个问题来自一个特定的例子,我们有一个列出文件和文件夹UI的目录。
<p:dataTable id="directoryTable" var="directoryObject" value="#{fileCabinet.folderContents}"
resizableColumns="true" scrollable="true"
rowKey="#{directoryObject}" selectionMode="single"
selection="#{fileCabinet.currentObject}" dblClickSelect="true"
sortMode="multiple" emptyMessage="This folder is empty"
sortFunction="#{dataTableUtil.sort}">
<c:if test="#{directoryObject.objectType eq 'DIRECTORY'}">
<p:ajax event="rowSelect" listener="#{fileCabinet.onRowSelect}"
update=":form:directoryTable :menu" />
</c:if>
为简洁起见,我排除了其余的数据表。使用此代码,ajax事件从不附加,即使&#39;测试&#39;表达式在随后的“渲染”中完美地评估。稍后的html元素的属性。不幸的是,p:ajax不支持“渲染”#39;条件句。
我也试过c:选择/ c:何时,得到相同的结果。
这感觉就像是应该很容易做到的事情!我可能缺少一些简单的语法来使这项工作。
谢谢!
答案 0 :(得分:1)
我通过使用disabled
的{{1}}属性来修复此问题,并将条件作为值(当然否定)。
<p:ajax>