簡體   English   中英

如何在validation-text.properties文件中使用通配符?

[英]How can I use wildcard character in validation-text.properties file?

我很難弄清楚如何使spring在表單綁定期間將我的自定義錯誤消息用於List對象中字段上的錯誤。

上述問題的較清晰版本為:

我的課看起來像這樣:

public class Foo
{
    private Long fooId;
    private Long number;

    //getters and setters stuff
}

然后是一個類Bar,它具有FooHAS-A列表:

public class Bar
{
    private List<Foo> foos;

    //other stuff
}

如果我的酒吧只有一個Foo ,則使用以下消息密鑰(在validation-text.properties中)

typeMismatch.bar.foo.number=Invalid data.

但是,因為我有Foo的列表,所以該字段實際上是foos[0].numberfoos[1].number等。

所以很明顯, typeMismatch.bar.foo不會解析為任何東西。

我的問題是,如何在我的validate-text.properties字段中指定類似的內容:

typeMismatch.bar.foos[*].number=Invalid data. ???

您可以通過檢查BindingResult對象來檢查可以在validation-text.properties中使用哪些鍵。 BindingResult result作為參數添加到您的控制器方法中(如果尚不存在),然后在發生驗證錯誤時,查看一下result.getFieldError()。getCodes()(其中應包含第一個字段錯誤的代碼) (如果有)。

編輯

我已經嘗試了您的示例,並檢查了BindingResult的代碼。 以下任何代碼均應工作

  • typeMismatch.bar.foos [1]。數
  • typeMismatch.bar.foos.number
  • typeMismatch.foos [1]。數
  • typeMismatch.foos.number
  • typeMismatch.number
  • typeMismatch.java.lang.Long
  • 類型不匹配

因此,要獲得所需的內容,只需在已經嘗試過的內容上添加“ s”(它是foos而不是foo):

typeMismatch.bar.foos.number=Invalid data.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM