Spring mvc Spring MVC模型-检查函数中的参数值?

Spring mvc Spring MVC模型-检查函数中的参数值?,spring-mvc,parameters,model,dao,null-check,Spring Mvc,Parameters,Model,Dao,Null Check,好的,当你在做一些SpringMVC项目时,你已经有了一些模型 它有一些setter函数,比如setCountry(字符串国家) 我知道大多数代码和书籍只是在没有任何验证的情况下设置参数, 但检查null是否是一种好的做法 之前: public void setCountry(String country) this.country = country; 之后: public void setCountry(String country) if (country != null) {

好的,当你在做一些SpringMVC项目时,你已经有了一些模型 它有一些setter函数,比如setCountry(字符串国家) 我知道大多数代码和书籍只是在没有任何验证的情况下设置参数, 但检查null是否是一种好的做法

之前:

public void setCountry(String country)
  this.country = country;
之后:

public void setCountry(String country)
  if (country != null) {
    this.country = country;
  }

这取决于您的需求,假设您在表单中有一个下拉字段,该字段接受国家/地区的输入。现在,如果您已将国家/地区值设置为USA并提交,它将根据您的空检查条件进行设置

现在假设用户有能力重新提交表单,并且他已经将国家字段重置为空,并且如果您在setter方法中设置了空检查条件。然后,您的字段值将保持在(美国)表单发布之前的状态。您的程序的用户将如何得到忽略其空输入的通知?必须进行适当的验证,不接受null作为值

现在想象另一组复选框。其中用户可以/不可以选择任何值。起初,他检查了两个值,后来他决定不选择任何值。在这种情况下,他的输入将必须得到处理


因此,基本上您在setter外部设置了验证规则,以观察用户的输入,并在对用户发布的数据执行任何操作之前通知他。

好的,所以我想我应该在调用模型中的setter函数之前验证输入数据,对吗?我认为这与大多数Spring教程是一致的。实际上,一旦发布,它将通过setter方法绑定到您的模型。但最好的做法是,除非验证完整的模型数据,否则不要使用它。如果数据验证正常,则处理数据,否则将通知用户验证失败。