【easyui+springMVC】实现金额万元与分转换

实现步骤

一、 准备工作

1. model层的金额字段,使用Long类型数据

2. 相关的增删改查功能已经实现

二、 实现逻辑

1. Bean中增加string字符串

例如,model中如果有

@Column(name = "CONTRACT_MONEY_ONE_")
    protected Long contractMoneyOne;                //合同总金额-1(第一次)

则,在对应的bean中,创建如下字段

private String contractMoneyOneStr;                 //合同总金额-1(第一次)

2. impl层中增加两个转换方法

    //将字符串数值转换为以分为单位的Long型
    private  Long convertStrToLong(String num) {
        if(!StringUtils.isNotEmpty(num)){
            return 0L;
        }
        Double f = Double.valueOf(num);
        f = f * 1000000;//万元转分
        Long l = f.longValue();
        return l;
    }

    //将Long型的以分为单位的数据,转换成万元的字符串
    private  String convertLongToStr(Long num) {
        if(num == null || num == 0L){
            return "0";
        }
        Double f = Double.valueOf(num);
        f = f/1000000;//万元转分
        return f.toString();
    }

3. impl层中的model和bean转换方法中增加数据转换过程

convertBeanToModel方法

//合同金额1      
       entity.setContractMoneyOne(convertStrToLong(bean.getContractMoneyOneStr()));

convertModelToBean方法

        //合同金额1
        if (entity.getContractMoneyOne() != null) {
            bean.setContractMoneyOne(entity.getContractMoneyOne());
            bean.setContractMoneyOneStr(convertLongToStr(entity.getContractMoneyOne()));
        }

4. list页面,显示时,显示处理后的结果

此处,使用处理后的Str显示数据,而不是使用model中的金额字段。

{
                field: 'contractMoneyOneStr',
                title: '预计出货额',
                width: 100,
                align: 'center',
                rowspan: 1
            }

5. toEditJsp方法中增加对entity进行转换

这里写图片描述

convertMoney方法中,直接调用前面写好的convertModelToBean方法即可

    //将实体中的金额字段转为以万元为单位的字段
    @Override
    public ForecastBean convertMoney(Forecast entity) {
        return convertModelToBean(entity);
    }

6. edit页面,通过EL表达式填充的数据使用处理后的数据

这里写图片描述

7. 实现结果

页面填入的数据,是以万元为单位的数据,前台无论是列表显示,还是编辑数据时,均以万元为单位显示数据,后台数据库中,存储的是以分为单位的数据。

猜你喜欢

转载自blog.csdn.net/xuexiiphone/article/details/80194553