Java JSF-prependId不工作?
我正在尝试使用prependId来缩短更新命令。 如果我在整个过程中使用合格id,一切正常。 如果使用prependId,则找不到该id:Java JSF-prependId不工作?,java,jsf,Java,Jsf,我正在尝试使用prependId来缩短更新命令。 如果我在整个过程中使用合格id,一切正常。 如果使用prependId,则找不到该id: <h:form id="form"> <p:dataTable id="table"> //closing tags <p:commandButton update=":form:table"> //works <h:form prependId="false"> <p:dataTable id=
<h:form id="form">
<p:dataTable id="table">
//closing tags
<p:commandButton update=":form:table"> //works
<h:form prependId="false">
<p:dataTable id="table">
//closing tags
<p:commandButton update=":table"> //works NOT!
//结束标记
//工作
//结束标记
//不行!
在视图中找不到标识符为“:table”的组件
我做错了什么
如果要从标记外部进行更新,则必须使用“:”。正如我所写,它与特定的id一起工作。我只是想知道prependId是如何工作的
这仅在prependId=“true”
时正确。update属性需要一个clientId来更新,如果将prependId设置为false,则表示该表单中的所有元素都将具有与服务器id相同的clientId。因此,正如Jigar在上面的注释中所提到的,它应该是table
如果您不相信我的话,请在Firebug中亲自尝试,并注意Primefaces dataTable的最外层div元素的id仅为table
。无论表单如何,更新都能够找到此项,因为它正在页面上查找与此项匹配的id
这可能很危险,因为很容易在DOM上意外地使多个具有相同ID的组件发生冲突。对于包含组件、第三方或其他内容的其他页面,以及具有唯一ID的内部DOM元素的页面,更是如此。这些类型的问题可能非常难以追踪。不应该只是
表
?没有bc,有结束标记,因此如果要从标记外部更新,必须使用“:”。正如我所写,它与特定的id一起工作。我只是想知道prependId是如何工作的……好吧,所以使用完全限定的ID更好。泰!