Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
就Spring验证而言,错误代码和消息代码之间的区别是什么?_Spring_Spring Mvc - Fatal编程技术网

就Spring验证而言,错误代码和消息代码之间的区别是什么?

就Spring验证而言,错误代码和消息代码之间的区别是什么?,spring,spring-mvc,Spring,Spring Mvc,我参考了BindingResult中的以下方法: 我试图找出错误代码和消息代码之间的区别。是否有人能提供一个例子,特别是一个例子,说明为什么给定的错误代码可能有多个消息代码?因为web应用程序是国际化的,当您拒绝某个对象并希望为其显示消息时,不要使用硬编码文本,因为无论使用何种语言,硬编码文本都会显示相同的内容 相反,您可以指定一个错误代码,稍后服务器将其作为从捆绑包中检索正确消息的密钥(现在,从必须找到正确消息文本的方法的角度来看,该错误代码是一个消息代码) 您的错误代码会解析为更多的消息代

我参考了
BindingResult
中的以下方法:


我试图找出错误代码和消息代码之间的区别。是否有人能提供一个例子,特别是一个例子,说明为什么给定的错误代码可能有多个消息代码?

因为web应用程序是国际化的,当您拒绝某个对象并希望为其显示消息时,不要使用硬编码文本,因为无论使用何种语言,硬编码文本都会显示相同的内容

相反,您可以指定一个错误代码,稍后服务器将其作为从捆绑包中检索正确消息的密钥(现在,从必须找到正确消息文本的方法的角度来看,该错误代码是一个消息代码)

您的错误代码会解析为更多的消息代码,因为Spring(基于实现)为您添加了一些额外的代码。以下是一个片段:

[…]它注册的错误代码由所使用的MessageCodesResolver确定。默认情况下,使用DefaultMessageCodesResolver,例如,它不仅使用您提供的代码注册消息,而且还注册包含您传递给reject方法的字段名的消息。因此,如果您使用rejectValue(“age”、“too.darn.old”)拒绝字段,除了too.darn.old代码外,Spring还将注册too.darn.old.age和too.darn.old.age.int(因此第一个将包括字段名,第二个将包括字段类型);这样做是为了方便开发人员定位错误消息等。[……]

最后一条语句是存在更多消息代码的原因,以控制显示给用户的消息,从通用代码(如“需要值”)到给定上下文的更具体代码(如“字段XXX需要值”)

本文对此进行了进一步解释,并给出了一个示例:

例如,如果代码“typeMismatch”,对象名称“user”,字段“age”:

  • 尝试“typemissmatch.user.age”
  • 尝试“typemissmatch.age”
  • 尝试“typeMismatch.int”
  • 尝试“类型不匹配”
  • 因此,可以利用此解析算法显示绑定错误的特定消息,例如“必需”和“类型不匹配”:

    在对象+字段级别(“年龄”字段,但仅在“用户”上); 在字段级别(所有“年龄”字段,无论对象名称如何); 或在常规级别(任何对象上的所有字段)


    因为web应用程序是国际化的,所以当您拒绝一个对象并希望为其显示一条消息时,您不会使用硬编码文本,因为无论使用何种语言,它都会显示相同的文本

    相反,您可以指定一个错误代码,稍后服务器将其作为从捆绑包中检索正确消息的密钥(现在,从必须找到正确消息文本的方法的角度来看,该错误代码是一个消息代码)

    您的错误代码会解析为更多的消息代码,因为Spring(基于实现)为您添加了一些额外的代码。以下是一个片段:

    […]它注册的错误代码由所使用的MessageCodesResolver确定。默认情况下,使用DefaultMessageCodesResolver,例如,它不仅使用您提供的代码注册消息,而且还注册包含您传递给reject方法的字段名的消息。因此,如果您使用rejectValue(“age”、“too.darn.old”)拒绝字段,除了too.darn.old代码外,Spring还将注册too.darn.old.age和too.darn.old.age.int(因此第一个将包括字段名,第二个将包括字段类型);这样做是为了方便开发人员定位错误消息等。[……]

    最后一条语句是存在更多消息代码的原因,以控制显示给用户的消息,从通用代码(如“需要值”)到给定上下文的更具体代码(如“字段XXX需要值”)

    本文对此进行了进一步解释,并给出了一个示例:

    例如,如果代码“typeMismatch”,对象名称“user”,字段“age”:

  • 尝试“typemissmatch.user.age”
  • 尝试“typemissmatch.age”
  • 尝试“typeMismatch.int”
  • 尝试“类型不匹配”
  • 因此,可以利用此解析算法显示绑定错误的特定消息,例如“必需”和“类型不匹配”:

    在对象+字段级别(“年龄”字段,但仅在“用户”上); 在字段级别(所有“年龄”字段,无论对象名称如何); 或在常规级别(任何对象上的所有字段)