JSF验证是客户端还是服务器端?

时间:2010-10-25 09:47:26

标签: validation jsf

我按如下方式实现了验证逻辑:

        <h:inputText id="title" value="#{...}" 
            required="true" requiredMessage="...some..text..." 
            validatorMessage="...some..other..text..." >
            <f:validateLength minimum="10" maximum="50"/>
        </h:inputText>

我阅读了很多关于客户端和服务器端验证以及它们的优缺点。但我不知道上面的代码是做什么的。

有人可以解释一下: - )

干杯

1 个答案:

答案 0 :(得分:30)

在客户端验证中,它是客户端(webbrowser),它借助客户端语言验证输入,例如: JavaScript的。在服务器端验证中,它是服务器(网络服务器),它借助服务器端语言验证输入,例如, Java的。

您永远不应该客户端验证,因为最终用户的结果是可控的(因此也是可黑客/可欺骗的)。通常,您希望使用客户端验证,因为它可以提供更快的反馈。最终用户不需要等待表单提交完成,也不需要面对“内容闪存”(页面空白,然后重新显示新内容)。您希望使用服务器端验证来确保提交数据的完整性。最终用户无法控制服务器端验证的结果。

对于JSF,验证始终服务器端。从JSF 2.0开始,可以使用内置的ajaxical功能提交表单(从而也验证表单)。这结合了两个世界中最好的:没有内容闪存的即时反馈和服务器端验证的健壮性/完整性。