java - Struts2 中的全局资源包 - 粒度最佳实践?

标签 java jsp struts2 internationalization resourcebundle

我有三个页面,具有三个不同的选项卡标题。

Page 1 tab title name: Page One : Hello : Hi

Page 2 tab title name: Page Two : Hello : Hi

Page 3 tab title name: Page Three : Hello : Hi

就实现和最佳实践而言,哪一个更好:


解决方案#1

全局属性内部

tab.title.page.number.one   = Page One 
tab.title.page.number.two   = Page Two
tab.title.page.number.three = Page Three
tab.title.colon             = :
tab.title.hello             = Hello 
tab.title.hi                = Hi

然后在jsp中每个页面的标题标签内

Page 1:

<title>
    <s:text name="tab.title.page.number.one"/>
    <s:text name="tab.title.colon"/>
    <s:text name="tab.title.hello"/>
    <s:text name="tab.title.colon"/>
    <s:text name="tab.title.hi"/>
</title>

Page 2:

<title>
    <s:text name="tab.title.page.number.two"/>
    <s:text name="tab.title.colon"/>
    <s:text name="tab.title.hello"/>
    <s:text name="tab.title.colon"/>
    <s:text name="tab.title.hi"/>
</title> 

Page 3:

<title>
    <s:text name="tab.title.page.number.three"/>
    <s:text name="tab.title.colon"/>
    <s:text name="tab.title.hello"/>
    <s:text name="tab.title.colon"/>
    <s:text name="tab.title.hi"/>
</title>

或者


解决方案#2

全局属性内部

tab.title.page.one   = Page One : Hello : Hi  
tab.title.page.two   = Page Two : Hello : Hi
tab.title.page.three = Page Three : Hello : Hi

然后在jsp中每个页面的标题标签内:

Page 1:

<title><s:text name="tab.title.page.one"/></title>

Page 2:

<title><s:text name="tab.title.page.two"/></title>

Page 3:

<title><s:text name="tab.title.page.three"/></title>

我的合作开发人员认为 HelloHi: 是可重用的。但这只是静态文本。它没有改变。使用实现、编码标准、性能方面哪个更好(笑)?谢谢!

最佳答案

这是我对完全国际化应用程序的体验。 您不应该尽可能多地为相同的值定义不同的键

假设您想要为用户名定义一个标签。

你可以做的是

lable.username=User Name

或者

lable.inputform.username=User Name
lable.registeration.form.username=User Name
lable.activate.form.username=User Name

第一种方法要好得多,因为您在资源包中所做的工作较少。 UserName 只是整个应用程序中的User Name,如果您想更改,那么更改一次就足够了,这是很合乎逻辑的。

请考虑庞大的资源包,更难维护并且需要更多内存。资源包很快就会变得巨大:)

我还建议不要通过添加键来构建句子:

例如

  lable.please+ lable.add + lable.your + lable.username 

将其设置为:

form.message= Please add your user name

它会让你的jsp或action变得非常复杂,而且你不会有太多收获。

所以我基本上同意你的观点,但你的大学方法应该考虑可重用的值(value)!

关于java - Struts2 中的全局资源包 - 粒度最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37246462/

相关文章:

java - 如何使用 DecimalFormat 格式化货币?

java - 无法在 appium 中的 twitter LoginPage 上找到元素

java - 带有简单 XML serializer.write 的神秘空指针异常

java - 使用 Struts 2 内置 JSON 实用程序类

java - Struts 2操作方法和struts.convention.result.path不起作用

jsp - 为 struts 2 中的字符串列表制作垂直的单选按钮列表?

java - 按升序将数据存储在表中

html - struts2 元素的布局页面出现不需要的边框

java - 如何确定正在呈现哪些 JSP 页面?

java - 从 MySQL 到 JSP 站点的 JDBC 连接