JSF - 验证失败的焦点组件

时间:2011-12-15 12:24:19

标签: java jsf jsf-2 primefaces

我有一个使用Primefaces 3.0M4组件库的JSF 2.0应用程序。我有以下输入:

<p:inputText id="input" value="#{bean.value}" required="true">
      <p:ajax event="blur" update="msg" />
</p:inputText>
<p:message id="msg" for="input" /> 

我想要做的是,如果验证失败(值为空),焦点将返回到组件,强制用户输入值。这可能吗? 当用户点击提交按钮时,我也希望如此;如果验证失败,则第一个未通过验证的组件将被重点关注。

谢谢,
达米安

1 个答案:

答案 0 :(得分:2)

使用requiredrequiredMessage属性可以在客户端进行。用户无法提交表单,并显示错误消息:

<h:outputLabel for="firstname" value="Firstname: *" />  
        <p:inputText id="firstname"   
                value="#{personBean.firstname}"   
                required="true" requiredMessage="You have to enter your name" label="Firstname">  
            <f:validateLength minimum="2" />  
        </p:inputText>  
        <p:message for="firstname" />

如果您不使用primefaces message属性,则可以使用requiredMessage,因为它会向您显示两条警告消息,这有点奇怪......

关注焦点......如果你有两个inputTexts怎么办?您是否只想显示第一个焦点? 您可以在此处查看演示:http://www.primefaces.org/showcase-labs/ui/pprAjaxStatusScript.jsf