Как определить и получить сообщения на основе локали в Spring MVC? - PullRequest
6 голосов
/ 16 ноября 2010

Я хочу определить набор сообщений об ошибках, чтобы при ошибках проверки генерировались коды, эти коды выбирали соответствующее сообщение об ошибке и распечатывали их.

Ради обучения,и чтобы разработать расширяемое веб-приложение, я бы хотел следовать правильному пути i18n, хотя сейчас мне нужно определить только один (английский) набор сообщений.

Таким образом, все языковые стандарты по умолчанию должны иметь английский язык, когда онине могу найти свои собственные ресурсы (которые я еще не определил).

Я никогда не использовал ни одну из функций i18n Java.И весенние документы предполагают, что у меня есть это знание.

Может ли кто-нибудь просто подтолкнуть меня в правильном направлении?

Я определил messageSource в своем dispatcher-servlet.xml веб-приложенииконтекст.У меня есть валидатор, который создает объект BindingResult с отклоненным полем "username" с кодом "username.taken".Я могу сгенерировать сообщение по умолчанию.

Теперь мне просто нужно получить сообщение об ошибке из файла errormessages.properties на мой взгляд.

Как разрешить код ошибки в сообщении?

<bean id="messageSource"
      class="org.springframework.context.support.ResourceBundleMessageSource">
  <property name="basenames">
    <list>
      <value>errormessages</value>
    </list>
  </property>
</bean>

1 Ответ

9 голосов
/ 17 ноября 2010

Это зависит от того, что вы хотите сделать с этим текстом. Первая возможность - получить сообщение программно:

@Autowired
private MessageSource messageSource;

@RenderMapping(params = "render=details")
public String showDetails (Model model, Locale locale) {
    messageSource.getMessage(<your key goes here>, null, locale);
}

Этот способ очень необычен, потому что вы сами должны получить ключи сообщения от объекта Errors.

Другим более распространенным способом является использование встроенных расширений вида, поставляемых с пружинным MVC. Вы не написали это, но я думаю, что вы используете JSP. В этом случае вы можете просто написать что-то вроде этого в своем JSP:

<!-- showing errors -->
<div>
    <form:errors path="*" />
</div>

<!-- showing arbitrary messages -->
<div>
    <spring:message code="${success.messageKey}"/>
</div>

Для дальнейшего чтения я предлагаю вам http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/view.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...