代码之家  ›  专栏  ›  技术社区  ›  Burak Dede

客户端和服务器端验证应选择哪个java web框架?

  •  3
  • Burak Dede  · 技术社区  · 15 年前

    6 回复  |  直到 14 年前
        1
  •  5
  •   non sequitor    15 年前

    新的Spring3(位于RC2,应该很快定稿)在与Hibernate相匹配时,有许多好东西可以帮助您的事业。通常在将用户输入绑定到模型后对其进行验证。Spring3支持JSR-303的声明性验证。如果类路径上存在JSR-303提供程序(如Hibernate Validator),则会自动启用此支持。启用后,只需使用注释控制器方法参数即可触发验证 @Valid 注释:

    @RequestMapping(value = "/appointments", method = RequestMethod.POST)
    public String add(@Valid AppointmentForm form, BindingResult result) {
        ....
    }
    
    public class AppointmentForm {
    
        @NotNull @Future
        private Date date;
    }
    

    绑定传入的POST参数后 AppointmentForm 将进行验证;在这种情况下,验证日期字段值不为null,并在将来发生。

    Spring-js 您可以为您的用例研究和评估它的优点。

        2
  •  4
  •   ChssPly76    15 年前

    客户端验证(假设“客户端”是指基于javascript的验证)是一个神话。毫无疑问,它提供了一个更好的用户界面,但不能称之为“验证”,因为 来自客户的信息不能被认为是有效的;直到它在服务器上得到验证。

    1. 数据存储约束(例如,在数据库级别指定的非空、最大长度、唯一性、引用完整性等)。
    2. 域模型验证(确保您的实体有效)
    3. 客户端输入验证(UI,以及在较小程度上基于API的验证)

    从#2中导出#1是可能的- Hibernate Validatior 假设您使用Hibernate作为您的JPA提供者,那么在这方面做得非常好。

    也可以从#3导出客户端检查。如果您打算使用GWT,那么使用Jeff推荐的GWT VF是一种很好的方法,因为它基于与Hibernate Validator相同的规范(JSR-303)。如果您打算使用其他东西,那么编写代码从注释或基于XML的验证规则生成必要的脚本就相当简单了。我以前为ExtJS控件做过。

        3
  •  2
  •   Bozho    15 年前

    添加到ChssPly76中,您可以直接在UI中使用Hibernate验证(或上一版本中的javax.validation)注释实体,如果您使用 RichFaces . 它有一个名为beanValidator的组件,用于读取上述注释。

        4
  •  1
  •   Jeff    15 年前

    GWT Validation . 它旨在连接客户端和服务器端验证。

        5
  •  0
  •   BalusC    15 年前

    您还可以寻找带有ajaxical酱汁的JSF组件库。然而,它们大多只进行服务器端验证,但使用ajax进行验证。例如 RichFaces (也包括在 Seam ), PrimeFaces IceFaces .

        6
  •  -2
  •   vinaynag    15 年前

    我认为Spring框架是最好的。我们使用Spring-Hibernate组合已经有一段时间了。