我有三个页面,具有三个不同的选项卡标题。
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>
我的合作开发人员认为 Hello
、Hi
、:
是可重用的。但这只是静态文本。它没有改变。使用实现、编码标准、性能方面哪个更好(笑)?谢谢!
最佳答案
这是我对完全国际化应用程序的体验。 您不应该尽可能多地为相同的值定义不同的键。
假设您想要为用户名
定义一个标签。
你可以做的是
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/