【问题标题】:Validate user input in GWT?在 GWT 中验证用户输入?
【发布时间】:2010-11-11 09:39:15
【问题描述】:

在 GWT 中验证用户输入的最佳方法是什么?是否有对输入验证的内置支持?还是有任何外部框架可以做到这一点?考虑到我在 GWT 中使用休眠?

谢谢

【问题讨论】:

  • 我希望你问这个问题只是为了用户反馈。只是一个友好的提醒,所有实际验证必须在服务器端完成。客户端检查以便您可以及时向用户提供反馈很好,但它们并没有消除检查服务器上的所有内容的需要。
  • @Andrezej Doyle - 是因为 Javascript 可以在客户端禁用吗?
  • @SidCool 用户可以修改发送到服务器的任何调用,这就是为什么您不应该依赖客户端验证来保持数据的一致性和安全性。

标签: java validation gwt


【解决方案1】:

您可以在存储在“共享”包中的类中编写静态验证检查程序。然后,您可以在客户端和服务器端使用相同的代码。

【讨论】:

    【解决方案2】:

    由于您没有得到好的答案,我想与我看到的 GWT 验证框架分享我的看法。

    框架的问题是它们经常尝试完成两件事:

    • 他们希望非常笼统。
    • 他们希望不干扰您的代码。

    这有时会成功,但大多数时候不会。编写这样一个框架是有成本的,而这个成本是你作为该框架的用户需要付出的。

    在我看来,验证应该很简单。这是一个关于我如何使用我放在一起的代码解决验证的示例:

        MasterValidator masterValidator = new MasterValidator();
    
        masterValidator.mandatory(messages.required_field(), lastnameBox, firstnameBox, genderBox);
    
        if (birthdateRequired) {
            masterValidator.mandatory(messages.required_field(), birthdateBox);
        }
    
        masterValidator.date(messages.date_format(), birthdateBox);
    
        masterValidator.email(messages.invalid_email(), emailBox);
    
        return masterValidator.validateStatus();
    

    这里的每个输入框都继承自我的 TextField(或其他一些输入类型),并且这些字段有一个错误标签,如果验证不成功,将设置该标签。

    我并不是说这是完美的,但它会简单地完成工作。如果您想为此受到启发/获取我的一些代码,请这样做。该代码用于托管在 Google Code 上的 GPL2 许可项目:

    http://code.google.com/p/accountclient/source/browse/#svn/trunk/RegnskapClient/src/no/knubo/accounting/client/validation

    它也使用客户端/用户界面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      相关资源
      最近更新 更多