我在这里有一个关于primefaces 命令按钮的更新属性的值的查询。
这是一个简单的代码。我有一个简单的 xhtml 页面
<h:body>
<h:form id="main">
<p:growl id="maingrowl" showDetail="true"></p:growl>
<p:panelGrid id="mainpanel" columns="2">
<p:commandButton value="Ajax Submit" update="test" id="ajax"
actionListener="#{mytestBean.display}" />
</p:panelGrid>
<p:panelGrid id="test" rendered="#{mytestBean.show}" columns="1">
<h:inputText value="#{mytestBean.val1}" />
<h:inputText value="#{mytestBean.val2}" />
<p:commandButton value="value in" id="aj" update="test"
actionListener="#{mytestBean.displaysec}">
</p:commandButton>
</p:panelGrid>
</h:form>
</h:body>
现在,如果我必须更新panelgrid“test”,那么在第一个命令按钮中,我必须在命令按钮的更新属性中提供前缀为“:main:”的id“test”,因为这是确切的id我在浏览器的视图源中找到的 HTML DOM 。但是,即使只在更新属性中给出“测试”,我也能够更新。所以我的问题是我什么时候应该在id中使用“:”或者它是强制性的还是有任何预定义的规则来在属性中给出id?
另外,我知道更新属性中给出的 id 是通过它所在的 UINamingContainer 给出的。如果它微不足道,请原谅我,我在这里真的很困惑。
非常感谢任何帮助。谢谢你。