2

在原生 MVC Web 项目(不能使用 Hibernate 或 Spring)中,提供“转换表”以将 bean 变量中的值修改为呈现友好格式的最佳方式是什么?为每个变量提供自定义的“Web Getter 方法”似乎很糟糕。

例如:一个名为status的变量可以在持久层中填充值“A”、“I”、“D”或“U”,因此在 bean 中它是以这种方式存储的。但是在页面上,这四个值分别转换为“活动”、“不活动”、“已删除”和“未定义”。在哪里以及如何存放这些翻译知识?

(另外,Java webdev 社区对这种“翻译表”有一个特定的名称吗?在这里搜索已经回答的解决方案时,我有点词汇量不足。)

4

2 回答 2

2

为此,通常使用资源包,这些资源包可以通过标准JSTL <fmt:xxx>标记访问,甚至可以使用JSTL 标记在幕后使用的ResourceBundleAPI以编程方式访问。

例如包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>

也可以看看:

于 2013-01-11T17:20:27.043 回答
0

一种常见的方法是使用表示级别 bean 和域数据 bean。将代码放入表示 bean 以将域 bean(您已经拥有的域 bean)中的值复制到可显示的值。同样,您有代码,也可以在表示 bean 中,以在提交表单时转换回来。(假设您有一种方法可以在网站上为该数据组件创建。

如果转换代码变得复杂,或者整个应用程序中各种数据对象的转换之间存在大量共性,您可以将转换提取到一组类,这些类的工作是转换特定类型的数据,或者您可以有一些实用程序类具有执行常见转换的方法,并且它们被表示 bean 用于使转换代码小而紧凑。

于 2013-01-11T17:04:28.433 回答