2

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

他的要求:

<label for="username">User Name:</label>
<input id="username" type="text" name="username" />

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

我的小脸代码:

<label for="username">User Name:</label>
<h:inputText value="#{login.username}" id="username" name="username" />

发送到浏览器的最终 XHTML:

<label for="username">User Name:</label>
<input id="j_id2:username" type="text" name="j_id2:username" />

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

谢谢!

4

1 回答 1

5

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

<h:inputText id="username">
    <h:outputLabel for="username" value="User Name: "/>
</h:inputText>

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

于 2008-10-13T16:49:39.753 回答