在Spring MVC表单中验证整数

时间:2014-06-13 13:36:23

标签: java spring validation spring-mvc

这不是Spring的编程问题,而是建议请求。

我在JSP上有一个表单,要求用户输入他们的ID号。

页面上的表单调用控制器中的方法。从控制器调用验证器。

如果用户输入非数字值,我相信我可以使用以下方式检查:

typeMismatch.java.lang.Integer =您已在期望数字的字段中输入非数字值...

但我的问题涉及检查数据库中用户的ID,即如果ID不存在,则应拒绝输入。

那么,服务可以在验证器类中使用吗?对此有任何考虑吗?

2 个答案:

答案 0 :(得分:2)

在演示应用程序中,您可以做一些看起来更简单的事情。但是你也问过,我要考虑从服务方法调用验证bean。

恕我直言,主要问题是您将在服务层中输入两次进行验证,一次进行实际处理。这是交易通常被管理的地方。因此,您最终可能会在同一个请求中打开2个不同的事务,而不是只有一个。如果您的应用程序或数据库负载很重,则应考虑这一点。

当然,如果您在整个请求期间有一个事务,例如使用Open Session In View模式,那么这不再是一个问题。

答案 1 :(得分:1)

这取决于您是否将此验证规则视为业务逻辑的一部分。我可以看到以下选项:

  1. 验证规则被视为业务逻辑的一部分。如果用户的ID已存在,则在服务层上抛出异常。通过这种方式,您可以在一次交易中处理所有事情。
  2. 验证规则不被视为您的业务逻辑的一部分。在验证bean上使用服务方法。这将为您提供所有验证的通用位置。