如何在不影响Primefaces输出标签的情况下将inputText设置为必需?

时间:2014-02-10 19:35:30

标签: jsf primefaces

当我将inputText设置为required时,我与inputText关联的outputLabel会自动添加一个星号。如何防止出现星号?

<p:outputLabel value="Target Species" for="idInputText" />  
<p:inputText id="idInputText" required="true" value="#{controller.string}"/>

我正在使用PrimeFaces 4.0

5 个答案:

答案 0 :(得分:13)

我建议使用普通的JSF <h:ouputLabel… />

<h:outputLabel value="Target Species" for="idInputText" />  
<p:inputText id="idInputText" required="true" value="#{controller.string}"/>

这会删除星号,但会使标签与输入元素正确关联。这对可访问性很重要。

答案 1 :(得分:7)

不确定这是否适用于4,但它适用于PrimeFaces 5.3:只需添加indicateRequired="false"。所以:

<p:outputLabel value="Target Species"
               for="idInputText"
               indicateRequired="false"/>  
<p:inputText id="idInputText"
             required="true"
             value="#{controller.string}"/>

答案 2 :(得分:6)

另一个选择是使用css隐藏asterisk

.ui-outputlabel-rfi { display: none; }

然后标签仍然会与输入相关联,如果您愿意,您仍然可以使用标签提供商:

http://cagataycivici.wordpress.com/2011/02/11/label-provider-for-jsf-input-components/

答案 3 :(得分:0)

indicateRequired="true"

例如:

<p:inputText value="#{bean.firstName}" indicateRequired="true" required="true" requiredMessage="Name is required"/>

答案 4 :(得分:-3)

<p:outputLabel value="Target Species" for="idInputText" />  
<p:inputText id="idInputText" required="true" value="#{controller.string}"/>

在您的代码中,您专门为inputText设置了该标签,这将asterisk

"for"移除outputLabel。它应该看起来像:

 <p:outputLabel value="Target Species" />  

现在,你不会有asterisk