1

我想使用 Vaadin 在错误指示器中制作自定义消息,如下所示:http: //vaadin.com/download/book-of-vaadin/vaadin-7/html/img/application/errorindicator-example2.png

我的应用程序是多语言的,我希望根据选择的语言为相同的错误提供不同的消息。一个错误指示器是否可以有不同的错误消息?如果有可能怎么办?

4

2 回答 2

1

使用java.util.ResourceBundle将帮助您解决 i18n 问题。每次Locale更改时,您也需要更新您的捆绑包。例如;

bundle = ResourceBundle.getBundle("messages", locale);

为了从包中检索错误表示,您可以使用bundle.getString("error.message")

通过这样做,您无需在每次更改语言环境时都更新代码。仅切换表示字符串的资源位置。如需更多信息,请访问 http://docs.oracle.com/javase/tutorial/i18n/resbundle/prepare.html

于 2013-01-30T19:49:17.573 回答
0

请记住将此代码添加到您的组件中:

myComponent.setConversionError("{1}");

这行代码将您的自定义消息设置为错误指示器。否则,您将收到此消息:

无法转换为 {0}

其中 {0} 是转换器的 PRESENTATION 类的名称。

事实上,这是AbstractField.setConversionError(java.lang.String valueConversionError)API 方法的 javadoc:

设置字段值无法转换为数据源类型时显示的错误。如果消息中存在 {0},它将被数据源类型的简单名称替换。如果消息中存在 {1},它将被 ConversionException 消息替换。

于 2014-04-18T16:15:46.237 回答