我正在尝试使用PrimeFaces inputText文本框来获取用户输入。即使我添加占位符属性,文本也不会出现在文本框中。我需要包含哪些库吗?下面是我的jsf页面。
<ui:composition template="/template/master-layout.xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<ui:define name="head"> test header </ui:define>
<ui:define name="meta">
<f:metadata>
<f:event type="preRenderView" listener="#{HomeBean.initPage}"></f:event>
</f:metadata>
</ui:define>
<ui:define name="mainContainer">
<div class="row">
<div class="col-sm-12">
<p:inputText placeholder="Your ID" styleClass="form-control service-input-border" maxlength="20" id="Id"
value="#{homeBean.Id}"></p:inputText>
</div>
</div>
</ui:define>
</ui:composition>
答案 0 :(得分:1)
Apostolos答案很好,但我更喜欢使用passthrough属性。如果您使用的是JSF&gt; = JSF 2.2 ,则可以使用。
只需使用新的namaspace http://xmlns.jcp.org/jsf/passthrough
并使用您喜欢的任何HTML属性(例如,任何未添加到输入/组件的HTML属性)。在您的情况下,它将是placeholder
。
<ui:composition template="/template/master-layout.xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough">
<!-- ... -->
<p:inputText pt:placeholder="Your ID" styleClass="form-control service-input-border"
maxlength="20" id="Id" value="#{homeBean.Id}" />
答案 1 :(得分:0)
您应该使用watermark
标记来显示占位符。
<p:inputText styleClass="form-control service-input-border" maxlength="20" id="Id" value="#{homeBean.Id}"></p:inputText>
<p:watermark for="Id" value="Your ID" id="watermark" />
另见showcase