首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • <s:iterator 的问题 [已结贴,结贴人:BearRui]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 10:55:51 楼主
    <s:iterator value="list" status="row">
                    <tr>
                        <td> <s:property value="state" /> </td>
                    </tr>
    </s:iterator>

    list中保存的是product对象,product对象有个属性值是state,short类型。

    我想在页面中state显示的不是数字,而是经过转换的字符串,比如:


    state=1,显示 "进行中"
    state=2,显示 "关闭"
    state=3,显示 "取消"
    state=4,显示 "暂停"

    请问这要这么做啊。

    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 10:56:411楼 得分:0
    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【BearRui】截止到2008-06-25 10:56:05的历史汇总数据(不包括此帖):
    发帖数:32                发帖分:4492             
    结贴数:31                结贴分:4392             
    未结数:1                  未结分:100               
    结贴率:96.88 %            结分率:97.77 %           
    值得尊敬
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 11:23:062楼 得分:20
    做一个静态Map,编号为你的id
    比如
    static Map <Integer,String> map = new HashMap <Integer,String>();
    static {
      map.put(1,"进行时");
      ...
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 11:31:583楼 得分:15
    引用楼主 BearRui 的帖子:
    <s:iterator value="list" status="row">
                    <tr>
                        <td> <s:property value="state" /> </td>
                    </tr>
    </s:iterator>

    list中保存的是product对象,product对象有个属性值是state,short类型。

    我想在页面中state显示的不是数字,而是经过转换的字符串,比如:


    state=1,显示 "进行中"
    state=2,显示 "关闭"
    state=3,显示 "取消"
    state=4,显示 "暂停…

    这个只能后台先做好吧,对应关系是你的业务,应该有共通类先对应好。要不你就狂加 <logic:equal>标签
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 11:35:414楼 得分:0
    引用 2 楼 java2000_net 的回复:
    做一个静态Map,编号为你的id
    比如
    static Map <Integer,String> map = new HashMap <Integer,String>();
    static {
    map.put(1,"进行时");
    ...
    }


    如果这样的话,在前台 <s:property 中怎么使用该map。

    我是初学者,^_^
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 12:57:095楼 得分:0
    引用 2 楼 java2000_net 的回复:
    做一个静态Map,编号为你的id
    比如
    static Map <Integer,String> map = new HashMap <Integer,String>();
    static {
      map.put(1,"进行时");
      ...
    }

    斑竹说得好^_^
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 14:07:536楼 得分:10
    两种方法,一种是如上的在得到list的action里直接做转换,另外一种是在页面做判断,添加if标签:
    <s:if test="list.state==1">
      <td>进行中 </td>
    </s:if>
    <s:else if....其他条件
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 14:11:427楼 得分:5
    “如果这样的话,在前台 <s:property 中怎么使用该map。”
    前台像使用list一样直接在iterator里用,不过如果你在要显示的数据中还包括product的其他字段,就不适合这种方法。用if去转换好些
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 14:15:178楼 得分:0
    引用 2 楼 java2000_net 的回复:
    做一个静态Map,编号为你的id
    比如
    static Map <Integer,String> map = new HashMap <Integer,String>();
    static {
      map.put(1,"进行时");
      ...
    }

    很强悍,我试了。行得通。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 16:11:529楼 得分:50
    可以在页面直接用 <s:if test=...来直接判断
    或者你在product中定义一个属性
    Java code
    private String msg = ""; public String getMsg() { String result = ""; switch (state) { case 1: result = "进行中"; break; case 2: result = "关闭"; break; case 3: result = "取消"; break; case 4: result = "暂停"; break; } return result; }

    调用时候
    HTML code
    <s:iterator value="list" status="row"> <tr> <td> <s:property value="msg" /> </td> </tr> </s:iterator>


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-06-25 16:36:4810楼 得分:0
    楼上的方法不错,可以直接在domain中写,哪所有使用该对象的地方都会自动转换了。

    谢谢
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved