1

我将 Spring MVC 用于我的表示层,并且还将 Spring 用于我的服务和 DAO 层。通常我会在 MVC 的视图层(在我的例子中是 JSP)中格式化数据,但是如果从数据库中检索到的数据不是标准化格式怎么办?

例如,我正在从我公司的一个数据库中提取电话号码,但它们可能采用任何格式 (111)-555-1234 或 1115551234 等。这似乎需要太多的功能和处理才能放入JSP/视图层。我宁愿将所有数字以相同格式放在其他地方,然后在视图上重新格式化。在这种情况下我应该在哪里格式化 - 服务层?道?

这也将允许我利用我无法从 JSP 调用的库(或者从 JSP 调用没有意义的库)。

谢谢!

4

2 回答 2

2

我会让 DAO 查询方法从电话号码中删除格式字符,并让表示层为它们提供一致的格式(可能在 JSP 标记中)。我不喜欢将业务逻辑放入 DAO,但这似乎与数据非常相关。

(实际上,如果格式化代码在进行自己的格式化之前首先删除任何预先存在的格式,那么您可能无需在其他任何地方删除格式化字符就可以过关。我只是喜欢以规范的形式来处理。)

作为将formatting-char-removal 放入DAO 的替代方法,如果您使用Hibernate,则可以创建自定义用户类型,从电话号码属性中删除或插入格式字符。

于 2013-04-05T20:36:26.983 回答
0

我通常进行格式化,当我将模型映射到值对象(VO 或任何你想调用的对象)时,主要是在表示层中(或者我在表示层和服务层之间放置一个层,如果我有太多东西要做)。如果您想要的话,这会在整个应用程序中带来格式的一致性。

当我希望名称以驼峰形式出现时,我会这样做

BeanUtils.copyProperties(userAccount, userAccountVO, ignoreProperties);
userAccountVO.setName(StringUtilities.convertToCamelCase(userAccountVO.getName()));
于 2013-04-06T02:30:07.317 回答