JSF/CSS属性冲突

Eri*_*oob 2 jsf

这是我们的第一个JSF应用程序,我正在将我们的图形设计器的CSS集成到我们的facelets文件中.他告诉我他需要输入标签的nameid属性与label标签的for属性相同.

他的要求:

<label for="username">User Name:</label>
<input id="username" type="text" name="username" />
Run Code Online (Sandbox Code Playgroud)

但是,当JSF代码呈现HTML时,我会在这些属性中获得额外的标识符.

我的facelet代码:

<label for="username">User Name:</label>
<h:inputText value="#{login.username}" id="username" name="username" />
Run Code Online (Sandbox Code Playgroud)

发送到浏览器的最终XHTML:

<label for="username">User Name:</label>
<input id="j_id2:username" type="text" name="j_id2:username" />
Run Code Online (Sandbox Code Playgroud)

从JSF的角度来看,这对我来说很有意义,但有没有办法让我满足我们的平面设计师的要求并让每个人都开心?或者这是一个糟糕的JSF监督?

谢谢!

Sim*_*ann 5

您可以使用JSF outputLabel标记,该标记应自动处理ID:

<h:inputText id="username">
    <h:outputLabel for="username" value="User Name: "/>
</h:inputText>
Run Code Online (Sandbox Code Playgroud)

编辑:为避免混淆:您还可以将outputLabel放在inputText元素之外.我只是喜欢这样使用它.