Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XPages自定义验证器_Xpages - Fatal编程技术网

XPages自定义验证器

XPages自定义验证器,xpages,Xpages,最终,我需要做一些跨域验证,我想我会使用一个定制的验证器来做这件事。但我连一个简单的例子都做不到。下面的代码与掌握XPages的第116页上的代码非常相似,它允许包含空字段的任何值。我错过了什么明显的东西吗 <xp:inputText id="field1" value="#{document1.field1}"> <xp:this.validators>

最终,我需要做一些跨域验证,我想我会使用一个定制的验证器来做这件事。但我连一个简单的例子都做不到。下面的代码与掌握XPages的第116页上的代码非常相似,它允许包含空字段的任何值。我错过了什么明显的东西吗

            <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确实有效。感谢您的回复。