假设我有一个要验证的用户名,在这种情况下,当验证失败并显示错误消息时,我需要用红色显示用户名outputText和用户名inputText字段。
我试图将所有这些内容绑定到一个面板组中,以便如果验证失败,则所有字段都将受到影响。但是,简单地将panelgroup放不起作用。
我的支持bean验证器
public void emailValidate(FacesContext context,
UIComponent componentToValidate,
Object value)
throws ValidatorException {
String email = value.toString();
if (!Validator.isEmailAddress(email))
{
FacesMessage message =
new FacesMessage(FacesMessage.SEVERITY_ERROR,"Email","Please enter valid email address");
throw new ValidatorException(message);
}
}
我的JSF
<h:panelGroup>
<h:outputText value="Email"/>
<h:message for="emailInput/>
<h:inputText id="emailInput" value="#{mybean.email}" validator="#{mybean.emailValidate}"/>
</h:panelGroup>
通过binding
属性将输入组件绑定到视图。它可以用作UIInput
EL中的组件参考,因此可以UIInput#isValid()
在in
styleClass
属性中使用。
<h:outputLabel for="emailInput" value="Email"
styleClass="#{emailInput.valid ? '' : 'error'}" />
<h:inputText id="emailInput" binding="#{emailInput}" ...
styleClass="#{emailInput.valid ? '' : 'error'}" />
(请注意,我将您的标签固定为 真实 标签;还请注意,您根本不需要按照cubbuk的答案建议创建一些bean属性)
是的,这可能会在视图中产生相当多的非DRY样板代码。您可以使用阶段侦听器或系统事件侦听器将其抽象化。您也可以使用OmniFaces
<o:highlight>
组件来透明地完成所有工作。。
问题内容: 我正在制作动态表格。一个有值的列表。每个值由一个字符串表示。 我的组件中有一个函数,可以向该字段添加新值。 值和按钮在我的HTML中这样显示。 一旦我在值的输入中写入一些文本,输入就会失去焦点。如果我在一个字段中添加了多个值,并且在一个输入值中写入了一个字符,则该输入将失去焦点,并且该字符将写入每个输入中。 问题答案: 当数组是原始类型(在您的情况下是数组)时,会发生这种情况。这可以通
我有一个电子签名/数字签名的PDF,该文档在分离签名中使用iText lib进行签名。我在验证签名时遇到问题,收到消息“签名者身份无效,因为它已过期或尚未有效”,并且在签名者信息中“构建从签名者证书到颁发者证书的路径时出错。” 我尝试了很多方法来验证签名,但都没有成功。如果我明确地将签名者证书添加为可信证书,那么我会得到一个绿色检查,并能够验证签名,但我认为这不是正确的方法。 数字签名的pdf可以
问题内容: 问候,我有这个输入字段, 我想在单击提交按钮时调用IsEmpty函数。 我尝试了下面的代码,但是没有用。有什么建议吗? 问题答案:
问题内容: 我的JavaScript代码是这样的: 看这里 : 我在文本输入中添加了必填项。但这不起作用如果文本输入为空,则当我单击“提交”时,不需要任何消息 有解决我问题的方法吗? 非常感谢你 问题答案: 您必须做三件事: 确保桌子周围有表格 移动之类的了 将按钮类型从更改为 查看演示- 小提琴
您如何验证有效的 HTML JavaScript 即使我对表单中的其他字段使用相同的方法,对空字段的验证也不起作用。