JSF在哪里validation输入值? 后端还是前端?

JSF可以validation输入值。 任何人都可以说JSF在哪里validation..?

我认为这两个答案都有点不清楚,因此我想总结一下:

1.)JSF原样, 总是在服务器端执行validation ! JSF中的validation是JSF组件生命周期的一部分。 提交一些数据时会触发生命周期。 我不想详细介绍,但生命周期通过phsaes(恢复组件,触发转换,validation转换后的值,执行actionlisteners和操作,渲染响应)

2.)感觉像客户端站点validation的validation是在JSF中使用ajax支持时。 这个方法的作用是它只请求执行一些html字段。 JSF执行与普通请求相同的生命周期。 不同之处在于它仅转换和validation您指定的组件,并仅为您指定的组件呈现输出。 因此,JSF中支持ajax的validation也在服务器端执行!

3.)我不同意第三方库提供客户端validation。

Primefaces集成了jQuery UI,但它仍然使用ajax aproach来validation数据。 你可以编写自己的jQuery JS来validation某些字段,但我不会这样做。 编写和难以管理重复的validation逻辑是痛苦的。

Richfaces提供部分客户端validation。 它为一些JSR 303和JSFvalidation器提供了JS实现。 因此,提供了真正的客户端JSvalidation,但仅适用于存在JS实现的validation器。 请参阅: http : //planet.jboss.org/post/richfaces_4_client_side_validation

Ice faces作为Primefaces克隆不提供客户端validation。

服务器总是和客户端有时。

客户端可以使用HTML / Javascript作为可用性增强来validation某些类型的输入。 但是,当客户端将信息发回服务器时,将始终在服务器上validation该输入和所有其他输入。

就像@Mike Q的后续行动一样,JSF可以在客户端或服务器端进行validation。 但是,内置到JSF生命周期(在服务器端进行)是一个validation阶段。 组件可能没有服务器端validation,但不建议这样做。 所有标准组件都提供服务器端validation。

JSF组件还可以提供客户端validation。 许多第三方JSF组件库( PrimeFaces , RichFaces ,…)提供了这一点。