1
以下是我希望能夠在我的JPA實體Bean驗證做到:Bean驗證+資源包的想法?
- 相反的
@NotNull
,我願做@NotNull(message="keyInMyResourceBundleFile")
- 我還想參數資源包,和我不知道它的語法,因爲在我看來,消息屬性只包含一個字符串。
- 參數本身可能是國際化的。例如,假設resourcebundle參數有一個param屬性,使用英文
@NotNull(message="missing.value", params={"credit card"}) String creditCard;
它將顯示如下:「字段信用卡缺少所需的值。在印度尼西亞,它將類似於」Nilai harus di isi untuk Kartu Kredit。在這個例子中,我不能硬編碼「信用卡」,因爲在印度尼西亞,它是「Kartu Kredit」 - 顯示日誌文件或UI上的資源包中定義的錯誤消息。林不知道如何做到這一點,我應該趕上
ConstraintViolationException
,獲取消息,並通過我自己的代碼處理資源包?
請分享您對此的看法?
謝謝!
你能幫助澄清'插入'是什麼意思?它是否與消息屬性的值中的花括號有關?關於沒有3是這樣的:在我的資源包屬性文件中,我有這個簡單的條目:empty.value =字段{0}的值是必需的。我想重用這個「{empty.value}」並傳遞將替換{0}的參數。例如,「需要字段用戶標識的值」或「需要字段密碼的值」。目的是參數化該值,並以某種方式傳遞該值。 – bertie 2011-03-23 17:35:18
對不起,遲到的答案。插值意味着,大括號{}代表您的消息包中的一個鍵。因此,對於@NotNull(message =「{keyInMyResourceBundleFile}」),您需要在屬性文件中使用'keyInMyResourceBundleFile = my message'行。關於3,Bean驗證不知道驗證的字段名稱。如果您使用的是JSF,則可以使用{0},這是一個特殊的標記,它將替換爲字段名稱。這是有效的,因爲JSF通過一個自定義的MessageInterpolator與Bean Validation集成。 – Hardy 2011-03-30 12:52:37
謝謝你的回答。這一切對我來說越來越清晰。想試用帶有BV +消息密鑰的JPA實體,並使用JSF Beans中的實體來存儲狀態,並重新使用BV。希望這會工作得很好。祝我好運 ! – bertie 2011-03-31 17:00:02