【问题标题】:Update beans (I18N) for a Spring MVC Webservice更新 Spring MVC Web 服务的 bean (I18N)
【发布时间】:2011-04-04 13:55:53
【问题描述】:

我有一个用 Spring MVC 为 webapp 编写的 web 服务。 用户可以更改区域设置和页面的语言,因此使用此信息完成对我的 Web 服务的调用。有关信息,在启动时,我为我的 webapp 配置加载了一些 bean。这些 bean 属性需要国际化

我的问题是如何直接从用户调用更新我的 bean 的值?

【问题讨论】:

  • 我很想了解您想要什么,但恐怕我不知道。据我了解,您拥有 Spring MVC 应用程序,并且您希望让用户能够按需更改他/她的语言。但是,我完全忽略了这一点——您想要国际化哪些 Beans 属性?它与加载(或实际上注入)这些 Bean 有什么关系?
  • 也许我不够清楚,对此我很抱歉...确实,我有一个 Spring MVC webservice,它为 webapp 提供配置。用户可以更改其 web 应用程序的区域设置,因此对我的 web 服务进行了新调用。配置是在我的 bean 中设置的,这就是我发回给用户的数据。这样,我需要让我的 bean 国际化......但经过几次搜索,我认为我错过了重点,我将考虑使用 Freemarker 或 velocity 及其模板来解决问题。

标签: java web-services spring internationalization javabeans


【解决方案1】:

这里有两件事:

一个是整体 i18n 架构。最好的 Bean(控制器、模型)不应该包含任何可翻译的文本,因此不需要做任何工作来使它们可本地化。这是理想的情况,在实践中并不经常发生。

另一种方法是使控制器可本地化。同样,有两种可能的方法:一种是使用资源键而不是字符串、消息等,并在您的视图中将其解析为真正的翻译,然后再将其显示给用户,另一种是让控制器从资源中读取这些消息 -你说你知道Locale,所以可以做到。如果您使用后一种解决方案,您可能需要限制您的 Scope 以请求(因为不同的用户可能想要使用不同的语言,据我了解,您写的用户可能想要即时更改他们的语言)。

【讨论】:

  • 是的,你是对的。我打算改变我对网络服务的概念,并尝试适应 I18N。谢谢
猜你喜欢
  • 2011-09-07
  • 2013-04-14
  • 1970-01-01
  • 2015-08-04
  • 2011-04-19
  • 2010-10-18
  • 2011-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多