在 native MVC Web 项目(不能使用 Hibernate 或 Spring)中提供“转换表”以将 bean 变量中的值修改为易于演示的格式的最佳方法是什么?为每个变量提供自定义的“Web Getter 方法”似乎是糟糕的 OO 实践。
例如:名为 status 的变量可以在持久层中填充值“A”、“I”、“D”或“U”,因此它存储在 bean 中那样。但在页面上,这四个值分别转换为“Activity ”、“非 Activity ”、“已删除”和“未定义”。在哪里以及如何存储这些翻译知识?
(另外,Java webdev 社区是否有这种“翻译表”的具体名称?在此处搜索已回答的解决方案时,我有点词汇不足。)
最佳答案
为此,通常使用可以通过标准 JSTL 访问的资源包。 <fmt:xxx>
标签,甚至以编程方式使用 ResourceBundle
API JSTL 标签在幕后使用它。
例如status.properties
文件在 com.example.i18n
包
status.A = Active
status.I = Inactive
status.D = Deleted
status.U = Undefined
with(前提是您有一个此属性为 ${bean}
的 bean)
<fmt:bundle basename="com.example.i18n.status">
Status: <fmt:message key="status.${bean.status}" />
</fmt:bundle>
或
<fmt:bundle basename="com.example.i18n.status" prefix="status.">
Status: <fmt:message key="${bean.status}" />
</fmt:bundle>
另请参阅:
关于java - 如何将 java bean 值转换为网页/演示文稿值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14282946/