【问题标题】:Bean Validation + JAX-RS not reading custom ValidationMessages.propertiesBean Validation + JAX-RS 未读取自定义 ValidationMessages.properties
【发布时间】:2017-11-17 15:57:21
【问题描述】:

我正在尝试将自定义消息与 Bean 验证一起使用,但 JAX-RS 资源没有返回我的自定义消息。我做错了什么?

ValidationMessages.properties

invoice.value.notnull=Invoice value must be informed.

文件位于src/main/resources

InvoiceResource.java

@Path("/invoice")
public class InvoiceResource {

    @POST
    public void post(@Valid InvoiceRequest request) {
        /* stuff */
    }

}

InvoiceRequest.java

public class InvoiceRequest {

    @NotNull(message = "invoice.value.notnull")
    private Double value;

}

【问题讨论】:

    标签: java internationalization jax-rs bean-validation


    【解决方案1】:

    发现问题出在我在 bean 参数中声明的消息。消息 ID 必须在大括号 "{ ... }" 之间分叉:

    @NotNull(message = "{invoice.value.notnull}")
    

    我们如何通过正确的消息获得正确的 JSON 响应:

    {
        "exception": null,
        "fieldViolations": [],
        "propertyViolations": [],
        "classViolations": [],
        "parameterViolations": [
            {
                "constraintType": "PARAMETER",
                "path": "post.arg0.value",
                "message": "Invoice value must be informed",
                "value": ""
            }
        ],
        "returnValueViolations": []
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-07
      • 2023-03-23
      • 2017-04-29
      • 1970-01-01
      • 2011-07-04
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多