jsp页面数据格式化

本来以为数据格式化很简单,但是在今天的工作中发现自己确实有很多的不足。

由于系统分模块开发,导致了jsp页面的el表达式、struts2标签、以及页面样式的不同。让我经历了3个不同的页面格式化阶段。

一、 页面js的数据格式化

        工作项目中用到的是easyui的页面

      

/**
 * 金额格式化
 */
    var DM = {
		digit:2,//小数点位数
		locale: "RMB ",//币种代号
		format: "RMB ###,###.##"//显示格式
	};
function decimalFormatter(value,dm){								
    val = parseFloat(value);
   return numToCurrency(val);
}
/**
 * 数字格式化为金额(加前缀、分隔符、保留两位小数)
 * @param val
 * @returns
 */
function numToCurrency(val,dm) {
	if(dm){
		DM = dm;
	}
	if(isNaN(val) ){ return ''; }
	var locales =DM.locale.length;
	var onesFormat = "";
        //判断格式化参数是否带有小数位,若有则截取小数部分格式
        if (DM.format.indexOf(".") == -1)
	   { onesFormat = DM.format.substring(locales); }
	else
	   { onesFormat = DM.format.substring(locales, DM.format.indexOf(".")); }
	var groupLength = 99999999;
        //获取每组分隔符的长度
        if (onesFormat.lastIndexOf(",") != -1)
	   { groupLength = onesFormat.length - onesFormat.lastIndexOf(",") - 1; }
	val = val.toFixed(DM.digit);
	var separate = String(val).split(".");
	var reg = new RegExp("(\\d{1," + groupLength + "})(?=(\\d{" + groupLength + "})+(?:$|\\D))","g");
	if(separate[1]) {
		return DM.locale + separate[0].replace(reg,"$1,") + '.' + separate[1];
	} else {
		return DM.locale + separate[0].replace(reg,"$1,");
	}
}
/**
 * 金额格式化为数字(去前缀与分隔符)
 * @param val 金额字符串
 * @param groupSeparator 分隔符
 * @param prefix 前缀
 * @returns
 */
function currencyToNum(val,groupSeparator,prefix) {
  return val.trim().replace(groupSeparator,'').replace(prefix,'');
}

      这里是使用正则表达式的规则进行替换的

二、jstl表达式格式化

       jstl的格式化主要是使用fmt标签。

      首先,在jsp页面引用<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

      jstl表达式显然是支持el表达式的。

      其次在需要格式化的地方

      <fmt:formatNumber value="${realityOccupyAmount}" pattern="RMB #,#00.00#"/>

     这样子满足了el表达式的格式化。但是接下来的问题。struts2标签如<s:property>标签也是可以获取值得。这种情况下,置于value中是不能实现格式化的。

    其中fmt标签中还有其他的标签。百度文库中的fmt标签较为详细的描述

三、struts2标签格式化

       1,在工程目录下创建一个format.properties文件

    

#number:
global.format.money={0,number,RMB #0.00##}
global.format.money02={0,number,##0.00}
#datetime:
global.format.date={0,date,yyyy-MM-dd}
global.format.time={0,date,HH:mm:ss}
global.format.datetime={0,date,yyyy-MM-dd HH:mm:ss}
global.format.datetime02={0,date,yyyy-MM-dd HH\:mm} 
       2,在struts.xml中引用此文件

        <constant name="struts.custom.i18n.resources" value="format"></constant>

      这里的value值应该为配置文件的文件名。

      3,页面上使用struts2标签进行格式化

      <s:text name="global.format.money"><s:param value="colCredit()"/></s:text>

      这样就将struts2的标签进行了格式化。

      struts2的格式化标签还有:

      <s:date name="birthday"  format="yyyy-MM-dd"/>就是将属性birthday按yyyy-MM-dd的格式进行输出

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值