2013-06-01 19 views
0

我在做一个Spring Web应用程序,但我觉得这个问题不是特定于框架的。Java Web应用程序:根据语言环境将数据从数据库中提取出来

我有一个约30个值的HTML选择列表。 Web应用程序需要具有四种语言的界面。因此,对于每种语言,HTML选择列表需要显示相同列表值的翻译文本。

我可以使用JSP页面对四种语言的列表进行硬编码,并使用条件以正确的语言显示列表。但我觉得这种方法不容易维护,并且不能很好地扩展,因为列表可能会不断变化。当列表更新时,Web应用程序无法停止。

我也可以使用Spring的消息机制和属性文件来显示列表,它看起来有着相同的可维护性和可伸缩性问题。

我正在考虑的另一种方法是将所有列表存储在数据库中,并根据语言环境使用正确的语言提取列表。我不知道如何在类和表的设计方面继续这种方法。有谁知道任何类似的工作?或者有什么想法?

感谢您的任何意见!

干杯。

+0

这是属性套件的作用。做一个谷歌搜索'jsf资源包'。 –

+0

我知道属性包的方法,我已经在我的文章中提到过。 – curious1

+0

没有意识到这就是你所说的“Spring的消息机制”(你最近的更新说得很清楚)。您看到的资源包方法中的可维护性和可伸缩性问题是什么? –

回答

1

如果你要去的数据库路径,那么我建议一个表4列:

locale: (stuff like "en_US", and "fr_CA") 
group_name: (whatever they are grouped by: "random-select-widget") 
value: (text value: "random selection") 
order: (integer order that it should appear in the list: 0) 

复合主键,将(区域,GROUP_ID,顺序)。如果您感觉需要,可以使用(locale_id,locale_name)和(group_id,group_name)的表格将这些设置为整数。

你的类可以使用NamedQuery正在拆卸:locale:group_name参数从EntityManager返回有序List简单的Hibernate实体。

相关问题