struts2或hibernate输出问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 07:50:44
最近刚接手JAVA项目,其中有一问题不明。我们在设计数据库时,为防止数据冗余,会将一些常用的内容设计成为key-value类型(或者是code-value)类型。例如性别就是1-男,0-女,数据库中一般存储的是0或1而不是‘男’或‘女’。如此类还有很多,包括国家地区,行业名称,都是以编码的形式存储在数据库中的。

我想问的是在hibernate+struts2的项目中,取出的都是编码,如何在页面输出时,转换成为值呢?
例如,Action返回了一个UserList到页面,通过迭代标签访问User的sex属性时,得到的性别都是0或1,如何让其显示为男或女。

性别只有两种,最多三种。但是国家或地区,行业等都是好几十种,不可能 用If标签来做的。
能给一个数据字典的实例给我吗?或者说详细点。

loveOuyoko兄能否说详细点,就你提出的方法我有两问题想请教
1.hashmap这个对象应该存放在哪里?如果放在ACTION中的话,由于ACTION不是Singleton 或Prototype ,访问量大的话会生成大量重复的hashmap对象,如果不放在Action中是否可以放在session或application中,有没有其他建议?
2.如何从页面中先取出sex属性再根据属性读取到value值?

谢谢 19yl兄的提示,本人能力有限,没有想到过使用cookie,而且不知道如何将hashmap对象读取到Cookie,然后取出。能否详解?

if判断 ??
我们是写自定义标签,通过数据字典转换

既然你知道是key-value类型为什么不用hashmap存一个映射关系呢,取出0或1后再到hashmap里查询

我们的和一楼一致!这应该是最好的办法!

<c:if test="${sex==1}">男</c:if>
<c:if test="${sex==2}">女</c:if>

这是我的解决办法 楼主可以参考下

对于国家地区,存到数据库做关联会好些吧

可以放到APPLICATION中!最好就放到application中最好了,如果想要优化的话,就放到COOKIES里面吧这样客户只有第一次打开的时候慢一点以后打开的时候速度就快了!

首先你要知道你的值是放在哪里了,这个就看你使用的是什么框架了!
然后对于里面的值进行更改,
更改方法我建议单独写一个个的转换类!
这个算是最好办法!