组件的JSF id值表现不同

时间:2018-03-23 05:53:58

标签: jsf primefaces

我的xhtml中有以下代码

<h:form id="xyForm">
      <p:dataGrid id="xyGrid" ....>
        <p:selectOneMenu id="code" ...> </p:selectOneMenu>
      </p:dataGrid>
 </h:form>

但是当我看到生成的代码时,它看起来像下面的

<select name="xyForm:xyGrid:0:code_input" tabindex="-1" id="xyForm:xyGrid:0:code_input"> </select>

我的问题是:为什么_input会附加名称和id.

根据我的理解,ID应仅xyForm:xyGrid:0:code而不是附加_input。有人可以澄清或告诉我如何删除_input吗?

1 个答案:

答案 0 :(得分:1)

{h}页面中id属性应该是唯一的。

在呈现SelectOneMenu时,select标记包含在div标记内。 div标记将具有组件的ID,即xyForm:xyGrid:0:code,因此选择标记应具有不同的ID是有意义的。

此外,这是Primefaces中的常见模式,在SelectBooleanCheckbox等其他组件中也可以看到。

您不必试图删除_input,而是必须考虑如何解决它。