中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > JavaScripts > 综合文章
我的Struts技巧集
作者:佚名 时间:2005-03-09 11:03 出处:互连网 责编:chinaitpower
              摘要:我的Struts技巧集

前言:为了解决开发struts应用中出现的问题,特开设此Struts 技巧集。2004年6月30日周咸立


1.对bean:write输出的数据进行格式化


在我们的struts应用中,如果bean:write输出的是很大的Double数据的话,默认情况下它会用科学计数化表示 如 1.316E8等。


我们需要将他进行格式化,如千分位格式化等。即输出为13,160,000.00。


如果是个别现象,我们用bean:write的format属性处理,即format="0,000.00"


如果是普遍现象,我们可以在资源文件(在struts-config.xml的message-resources节点配置)里设置org.apache.struts.taglib.bean.format.float=0,000.00 ,当然实际处理时format属性是优先的。也就是说,如果format属性存在,bean:write将用format属性值进行格式化,否则用默认的org.apache.struts.taglib.bean.format.float的值格式化。


此类格式化参数有:


?





























序号 格式化参数 适用类型
1 org.apache.struts.taglib.bean.format.sql.timestamp java.sql.Timestamp
2 org.apache.struts.taglib.bean.format.sql.date java.sql.Date
3 org.apache.struts.taglib.bean.format.sql.time java.sql.Time
4 org.apache.struts.taglib.bean.format.date java.util.Date
5 org.apache.struts.taglib.bean.format.int Byte,Short,Integer,Long,BigInteger
6 org.apache.struts.taglib.bean.format.float Float,Double,BigDecimal


2.处理输入类型


以日期为例,其他类型同理

struts使用日期包括将string自动转化为日期fill到form中的解决方法:

创建如下类:
import java.util.*;
import org.apache.commons.beanutils.*;
import java.text.SimpleDateFormat;
public class DateConvert implements Converter {
    static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    public DateConvert() {
    }
    public Object convert(Class type, Object value) {
        if (value == null) {
            return null;
        }
        if (((String) value).trim().length() == 0)
            return null;
        if (value instanceof String) {
            try {
                return df.parse((String) value);
            } catch (Exception ex) {
                throw new ConversionException("输入的日期类型不合乎yyyy-MM-dd"
                        + value.getClass());
            }
        } else {
            throw new ConversionException("输入的不是字符类型" + value.getClass());
        }
    }
}


然后在你的系统初始化的地方使用如下语句初始化(如web的init方法)
ConvertUtils.register(new DateConvert(),java.util.Date.class);
参数用于表示DateConvert类负责处理java.util.Date类型的转化
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有