`

http://ll-feng.javaeye.com/blog/216129

阅读更多

我们经常会遇到这样一种情形:要将从action里取出的list里的对象数据输出到页面上时,有些值是不能原样输出的。比如,状态或性别之类的属性,我 们一般都会用0、1之类的常量值进行标识。CRUD是方便,但是如果原样输出,用户能看得明白吗?(列表中,性别一栏张三的输出值为“0”,李四的输出值 为“1”,你问客户他们谁是男谁是女?!他不跟你急,算你走运!

这种现象的解决办法就是在页面上进行输出前,先对初始值做一下转换后再输出给用户。采用struts2的iterate标签可以很方便的在页面上进行跌代,如:

Java代码 复制代码
  1.       
  2. <table>  
  3.       <tr>  
  4.         <td>序列</td>  
  5.         <td>姓名</td>  
  6.         <td>性别</td>  
  7.         <td>年龄</td>  
  8.       </tr>  
  9.       <s:if  test= "users!=null" >  
  10.       <s:iterator value="users"  status= "stat" >  
  11.       <tr>  
  12.         <td><s:property value="stat.index" /></td>  
  13.         <td><s:property value="name" /></td>  
  14.         <td><s:property value="sex" /></td>  
  15.         <td><s:property value="age" /></td>  
  16.       </tr>  
  17.       </s:iterator>  
  18.       </s:if >  
  19.     </table>  
    
<table>
      <tr>
        <td>序列</td>
        <td>姓名</td>
        <td>性别</td>
        <td>年龄</td>
      </tr>
      <s:if test="users!=null">
      <s:iterator value="users" status="stat">
      <tr>
        <td><s:property value="stat.index"/></td>
        <td><s:property value="name"/></td>
        <td><s:property value="sex"/></td>
        <td><s:property value="age"/></td>
      </tr>
      </s:iterator>
      </s:if>
    </table>



这里的users是一个list类型,跌代时每一个当前对象就是一个user类型的对象。它有name,sex,age三个属性。通过<s:property value="propertyname"/>的方式即可这些属性值跌代输出。

但是这里的sex属性的数据类型我是用char(1)表示的,也就是说,在数据库里我用0表示性别为男,用1表示性别为女。问题来了,如果采用上以上代码输出就会出现文章开头所说的在性别一栏出现用户看不懂含义的值0或1。

其实struts2是有解决之道的,就是为每个跌代中的当前对象用id加以引用,再结合<s:if/>和<s: else>进行判断就可以实现。这里表扬一个sturts2.<s:else/>可是期盼已久的好东东了。struts1就从来没有满 足过。
具体代码如下:

Java代码 复制代码
  1. <s: if  test= "users!=null" >  
  2.     <s:iterator value="users"  status= "stat"  id= "u" >  
  3.       <tr>  
  4.         <td><s:property value="stat.index" /></td>  
  5.         <td><s:property value="#u.name" /></td>  
  6.         <td><s:if  test= "#u.sex==0" >男</s: if ><s: else >女</s: else ></td>  
  7.         <td><s:property value="#u.age" /></td>  
  8.       </tr>  
  9.     </s:iterator>  
  10. </s:if >  
<s:if test="users!=null">
    <s:iterator value="users" status="stat" id="u">
      <tr>
        <td><s:property value="stat.index"/></td>
        <td><s:property value="#u.name"/></td>
        <td><s:if test="#u.sex==0">男</s:if><s:else>女</s:else></td>
        <td><s:property value="#u.age"/></td>
      </tr>
    </s:iterator>
</s:if>



上面这段代码有两个重点:
1、跌代时要在<s:iterator/>加上id,便于后面引用。
2、引用当前对象时要在id名前加上"#",如代码中的"#u.name" 即代码当前对象的name属性

另外,我也发现,明明sex属性在javabean里是string类型,在数据在里是char类型。但在这里输出时不能对它的值加''号。如果 写成<s:if test="#u.sex=='0'">就不行。只能写成<s:if test="#u.sex==0">。怎么看都象是在对一个integer类型的属性进行取值。这一点我没搞明白。有知道朋友可以留言以告之。先谢 谢了!

这是我在javaeye的第一篇文章。自我鼓励一下!!

分享到:
评论

相关推荐

    http://yourgame.javaeye.com/blog/252853

    标题 "JavaEye博客文章——深入理解HTTP你的游戏" 这篇博客文章是关于深入理解HTTP协议的,作者通过"你的游戏"这个实例,详细讲解了HTTP在实际应用中的运作机制,特别是对于游戏开发而言的重要知识点。HTTP(超文本...

    JAVA web.xml配置详解

    -- 配置集群的时候,要用到,在这篇文章:“apache+tomcat集群、负载均衡及session复制”里的第三条(http://jiajun.javaeye.com/admin/blogs/278586) --&gt; &lt;distributable/&gt; &lt;!-- context-param 元素用来设定...

    Android 中文API 合集(102 篇)

    无论是个人还是团队,只要翻译了Android官方的相关文档,都可以通过发送邮件的方式(over140@gmail.com)分享进度,以避免重复翻译的工作。同时,翻译组也会定期更新进度列表,方便大家了解整体进展。 #### 五、...

    JAva资源网站大全

    CSDN是国内知名的IT技术社区,其Java专区汇聚了大量的技术博客、问答和项目资源。无论是Java基础还是高级主题,这里都有丰富的资料可供参考,是Java学习者的宝库。 ### 7. Developer Resources for Java Technology...

    hadoop学习资料地址

    3. **Solomons的博客**:`http://solomons.javaeye.com/blog/277784` - 归纳总结了Hadoop 0.19版本的新特性和改进之处。 4. **Killme2008的博客**:`...

    常用Java Web应用软件 (LNMJ,LAMJ)安装

    http://peterwei.javaeye.com/blog/968815 Ubuntu10下JDK1.6安装 http://peterwei.javaeye.com/blog/968758 Ubuntu10下Tomcat7安装 http://peterwei.javaeye.com/blog/968774 Ubuntu10下Eclipse3.6安装 ...

    手把手教你使用Maven进行Android的从配置到开发与资源管理教程.doc

    - Maven的中文手册可参考[http://www.juvenxu.com/mvn-def-guide/](http://www.juvenxu.com/mvn-def-guide/)和[http://juvenshun.javaeye.com/5](http://juvenshun.javaeye.com/5)。 **5. Maven项目导入Eclipse** ...

    Java 学习资料

    5. **JavaEye([http://www.javaeye.com/](http://www.javaeye.com/))** - **特点**:这曾经是Java开发者非常活跃的一个社区,虽然现在已不再更新,但其历史资料仍然具有很高的参考价值。 - **适用人群**:适合...

    50个论坛地址

    - **CodingNow**(http://blog.codingnow.com/): 技术博客平台,汇集了许多知名技术博主的文章。 - **Tech.Sina**(http://tech.sina.com.cn/): 新浪科技频道,提供最新的科技新闻和技术动态。 ### 3. 专项技术...

    html5-css3

    6. **HTML5和CSS3资源分享**([http://www.javaeye.com/news/16684-html5-css3](http://www.javaeye.com/news/16684-html5-css3)) - 分享了一些高质量的HTML5和CSS3资源链接,有助于开发者扩展视野。 7. **CSS3...

    java学习网站

    - **网址**: http://www.javaeye.com/ - **简介**: 这个社区不仅提供Java技术方面的资讯和教程,还拥有活跃的技术交流氛围。 **1.6 LearnJava** - **网址**: http://www.learnjava.cn/ - **简介**: 专注于Java技术...

    Java学习网站汇总

    5. **JavaEye**(http://www.javaeye.com/) - **特色**:一个面向Java开发者的社区,用户可以在这里交流心得、解决问题。 6. **Java学习站**(http://www.learnjava.cn/) - **特色**:提供了大量的免费Java教程...

    java学习的特别网站

    5. **JavaEye** - &lt;http://www.javaeye.com/&gt; - **简介**:一个以Java技术为主的社区,汇集了大量的Java程序员和技术爱好者。 - **特色**:强大的技术交流平台,用户可以在这里找到各种技术难题的解答。 6. **...

    struts2-jasperreport-plugin-2.1.6.1

    官方发布的 struts2-jasperreport-plugin-2.1.6存在以下问题: ... 2、解决问题:图形报表一次请求...免费从我的blog上下载】,为的是开源共进步,详细信息请访问我的blog http://redsnow-fenglin.javaeye.com/blog/508715

Global site tag (gtag.js) - Google Analytics