用struts2标签对初始值进行转换输出

2024-02-11 17:58

本文主要是介绍用struts2标签对初始值进行转换输出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们经常会遇到这样一种情形:要将从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类型的属性进行取值。这一点我没搞明白。有知道朋友可以留言以告之。先谢谢了!

 

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

这篇关于用struts2标签对初始值进行转换输出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/700461

相关文章

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c