我想使用 Vaadin 在错误指示器中制作自定义消息,如下所示:http: //vaadin.com/download/book-of-vaadin/vaadin-7/html/img/application/errorindicator-example2.png
我的应用程序是多语言的,我希望根据选择的语言为相同的错误提供不同的消息。一个错误指示器是否可以有不同的错误消息?如果有可能怎么办?
我想使用 Vaadin 在错误指示器中制作自定义消息,如下所示:http: //vaadin.com/download/book-of-vaadin/vaadin-7/html/img/application/errorindicator-example2.png
我的应用程序是多语言的,我希望根据选择的语言为相同的错误提供不同的消息。一个错误指示器是否可以有不同的错误消息?如果有可能怎么办?
使用java.util.ResourceBundle
将帮助您解决 i18n 问题。每次Locale
更改时,您也需要更新您的捆绑包。例如;
bundle = ResourceBundle.getBundle("messages", locale);
为了从包中检索错误表示,您可以使用bundle.getString("error.message")
通过这样做,您无需在每次更改语言环境时都更新代码。仅切换表示字符串的资源位置。如需更多信息,请访问 http://docs.oracle.com/javase/tutorial/i18n/resbundle/prepare.html
请记住将此代码添加到您的组件中:
myComponent.setConversionError("{1}");
这行代码将您的自定义消息设置为错误指示器。否则,您将收到此消息:
无法转换为 {0}
其中 {0} 是转换器的 PRESENTATION 类的名称。
事实上,这是AbstractField.setConversionError(java.lang.String valueConversionError)
API 方法的 javadoc:
设置字段值无法转换为数据源类型时显示的错误。如果消息中存在 {0},它将被数据源类型的简单名称替换。如果消息中存在 {1},它将被 ConversionException 消息替换。