论坛首页 Java企业应用论坛

关于表示层的一些疑问,例如时间的保存和现实,还有数据字典的保存和显示。

浏览 2350 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-20  
今天看到一篇文章,介绍j2ee项目的一些最佳实践,其中有一条是不要在控制层中固定数据的格式。他给的建议是为jsp写一些help类,用那些help类来对数据做格式化。
结合我做过的项目,我感觉对这一条有些疑问。
1. 举个例子,在jsp页面中显示时间,一般的做法是直接在action里面将时间格式化好,然后传字符串到页面上。如果根据这个最佳实践,岂不是要传date对象?或者变通的做法,将date对象中的具体long数值作为string 传到页面上,再用help类格式化?
2. 另外象有些key-value类型的数据,比如有一个选择框,用来选择城市,在vo中保存的应该是城市的key,那么是应该在action中处理好,然后传城市的value到页面上呢,还是在页面上用help类来查找城市的key对应的value呢?大家平时都是怎么做的啊?
3. 顺便想到一个问题,我看到有不少开源项目在存储时间,日期的时候是直接存储的具体的long值,有没有朋友在自己的项目中是这样做的?有什么优缺点呢?
   发表时间:2007-09-20  
第一个问题,你说的这种做法不是最佳实践,应该在页面上用相应的Tag或者模板提供的转化方式直接转

第二个问题,这些数据字典往往不大会改变,如果量比较小,可以考虑在系统启动的时候一次性load到servletContext里面,然后用Tag或者模板的方式获取。系统启动的时候load还有一个好处,就是如果你使用Hibernate,那么这些数据可以在系统启动时就被装入二级缓存,之后的存取效率是很高的。

第三个问题,极少数会这么做,除了在不同的系统之间传递数据,由于平台等各个方面的原因,会导致互相之间对Date类型的定义不同,此时不妨用long型进行传递,相当于同时遵循一个协商好的协议。

0 请登录后投票
   发表时间:2007-09-20  
1、不过tag或者模板不也是help类的一种具体实现方式么。
2、我们目前是用的你说的这种方式,不过还是想了解下这种方式有什么优缺点,或者还有没有更好的方式,谢谢你的回答。
3、我看过jive,opencms的数据库,他们都是这样做的,我们自己的项目一般是在数据库中定义的datetime类型,感觉在存取数据的时候因为有java.util.date 到java.sql.date的转换,总是不是很爽,也许他们用long类型就是为了避免这种转换?因为经常要做比较复杂的组合查询,所以我们没有用hibenate.
0 请登录后投票
   发表时间:2007-09-20  
该回答的我都回答了,你的回答我无法再做出进一步的回答。你其实已经知道答案了,对自己自信一些,实践中觉得好的,就是好的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics