XPages自定义验证器
最终,我需要做一些跨域验证,我想我会使用一个定制的验证器来做这件事。但我连一个简单的例子都做不到。下面的代码与掌握XPages的第116页上的代码非常相似,它允许包含空字段的任何值。我错过了什么明显的东西吗XPages自定义验证器,xpages,Xpages,最终,我需要做一些跨域验证,我想我会使用一个定制的验证器来做这件事。但我连一个简单的例子都做不到。下面的代码与掌握XPages的第116页上的代码非常相似,它允许包含空字段的任何值。我错过了什么明显的东西吗 <xp:inputText id="field1" value="#{document1.field1}"> <xp:this.validators>
<xp:inputText
id="field1"
value="#{document1.field1}">
<xp:this.validators>
<xp:customValidator>
<xp:this.validate><![CDATA[#{javascript:if (value == "") {
return new javax.faces.application.FacesMessage("Please enter a value");
}}]]></xp:this.validate>
</xp:customValidator>
</xp:this.validators>
</xp:inputText>
您需要返回一个包含错误消息的字符串,而不是FacesMessage对象 因此,在您的情况下,请改为:
<xp:inputText id="field1" value="#{document1.field1}">
<xp:this.validators>
<xp:customValidator>
<xp:this.validate><![CDATA[#{javascript:
if (value == "") {
return "Please enter a value";
}
}]]></xp:this.validate>
</xp:customValidator>
</xp:this.validators>
</xp:inputText>
无法使用验证器验证空字段。验证程序仅在值存在时运行。在XPages中,您具有字段的必需属性,该属性允许检查空字段;这是一个解决这个问题的方法,据我所知,不可能创建自己所需的验证器 如果要创建自己的转换器,则必须创建转换器 更新21.06.2013
可以通过一个小的解决方法创建自己所需的验证器:FacesMessage对我和字符串都很好。我建议对你的答案进行编辑。谢谢你提供的信息。我最终需要做的是一些跨领域的验证。我知道我可以计算所需的属性,但在计算公式中引用另一个字段的值时遇到了问题。我在下面的代码段中尝试了这两个选项,但都没有触发field1验证。有没有关于实现这一目标的最佳方法的想法?if document1.getItemValueStringfield2==维护{//if getComponentfield2.getSubmittedValue==维护{返回真;}否则{返回假;}啊-我需要.getValue而不是.getSubmittedValue。另外,我发现当验证器检查真实值而不是空字段时,FacesMessage确实有效。感谢您的回复。