[英]Problem with a validator used with JSF
我正在使用JSF2.0
我已经使用了验证器来验证输入文本,但是没有出现msg表示输入错误!
更新:
他们是否有一种在提交输入文本之前(仅在输入输入文本之后)验证输入文本的方法?
JSF代码:
<h:form id="form3">
<p:panel visible="#{bean.form3Visible}" style="width: 900px;">
<h:panelGrid width="width: 900px;" columns="1">
<p />
<h:selectOneMenu value="#{bean.platform}">
<f:selectItem itemLabel="-- Select Plateform-- " itemValue="0"/>
<f:selectItems value="#{bean.getMyListPaltform()}" />
<f:ajax listener="#{bean.UpdateChangeEnvironment()}" render="Environment" />
</h:selectOneMenu>
<h:panelGrid width="width: 160px;" columns="9">
<h:inputText id="ssFrom" value="#{bean.ssFrom}" required="true" style="width: 18px" > <f:validateLongRange minimum="0" maximum="24"/>
</h:inputText>
<h:message for="ssFrom" id="msgg" style="color:red" />
</h:panelGrid>
</p:panel>
</h:form>
我已经解决了我的问题,这就是答案,也许可以帮助其他人:
<h:selectOneMenu value="#{bean.availabilityDisplay}" id="Display">
<f:selectItem itemLabel="-- Select Display-- " itemValue="0"/>
<f:selectItems value="#{bean.getMyListDisplays()}"/>
<f:ajax render="Target" />
</h:selectOneMenu>
<p:outputPanel id="Target">
<h:selectOneMenu value="#{bean.frequency}" id="frequency" rendered="#{bean.availabilityDisplay == 'Availibility Histogramme' or bean.availabilityDisplay == 'Availibility line'}">
<f:selectItem itemLabel="-- Select Frequency-- " itemValue="0"/>
<f:selectItems value="#{bean.getMyListFrequency()}"/>
</h:selectOneMenu>
</p:outputPanel>
谢谢
您需要添加一个h:message
或一个h:messages
标记以显示错误消息。
<h:inputText value="#{bean.ssFrom}" required="true" style="width: 18px" id="ssFrom">
<f:validateLongRange minimum="0" maximum="59"/>
</h:inputText>
<h:message for="ssFrom" />
<!-- OR -->
<h:messages />
h:message
用于显示单个字段的错误(由for
属性连接)。 h:messages
可用于显示页面的所有错误消息。 如果您设置globalOnly="true"
,它将仅显示h:message
标记未“捕获”的h:message
。
您能粘贴整个页面代码吗?
但是,可能的问题可能是:
requiredMessage="whatever" validatorMessage="whatever"
属性 为了在不提交表单的情况下验证<h:inputText>
,您需要添加ajax功能。
<h:inputText id="ssFrom" value="#{bean.ssFrom}" required="true" style="width: 18px" >
<f:validateLongRange minimum="0" maximum="24"/>
<f:ajax execute="@this" event="keyup"/>
</h:inputText>
f:ajax
标记将在每次按键事件时更新您的ssForm
变量,并且如果发生验证错误,它将如Mulmoth所说的那样显示在<h:message for="ssFrom" />
中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.