代码之家  ›  专栏  ›  技术社区  ›  David Parks

如何在Spring MVC中定义和获取基于区域设置的消息?

  •  6
  • David Parks  · 技术社区  · 14 年前

    我想定义一组错误消息,以便在 验证错误生成代码,这些代码接收相应的错误消息 打印出来。

    为了学习和开发一个可扩展的web应用程序,我希望遵循正确的i18n路径,尽管我现在只需要定义一组(英语)消息。

    因此,当没有找到自己的资源(我还没有定义)时,所有的语言环境都应该默认为英语。

    我从未使用过Java的任何i18n功能。spring文档假设我有这些知识。

    能不能有人轻轻地推我一下?

    我定义了 messageSource 在我的 dispatcher-servlet.xml webapp上下文。我有一个验证器 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 回复  |  直到 14 年前
        1
  •  9
  •   scheffield    11 年前

    这取决于你想对这篇文章做什么。第一种可能是以编程方式获取消息:

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

    这种方式很少见,因为您必须自己从Errors对象中获取消息密钥。

    另一种更常见的方法是使用spring 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