jsp页面数据格式化

jsp页面数据格式化本来以为数据格式化很简单 但是在今天的工作中发现自己确实有很多的不足 由于系统分模块开发 导致了 jsp 页面的 el 表达式 struts2 标签 以及页面样式的不同 让我经历了 3 个不同的页面格式化阶段 一 页面 js 的数据格式化 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 工作项目中用到的是 easyui 的页面 nbsp nbsp nbsp nbsp nbsp nbsp 金额格式化 varDM digit 2 小数点位

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

由于系统分模块开发,导致了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 = ; //获取每组分隔符的长度   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的格式进行输出



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232757.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 图解springmvc 执行流程

    图解springmvc 执行流程核心对象DispatcherServlet核心控制器负责请求,响应,数据的分发。HandlerMapping处理器映射器,负责到controller中,找到对应的方法,返回给核心控制器。HandleAdapter处理适配器,将handle找到的方法执行,执行结果,即ModelAndView数据和视图返回给核心控制器。HttpMessageConvertor消息转换器,数据类型的转换,如日期…ViewResolver视图解析器,核心控制器调度视图解析器,视图解析器,返回视图。核心控制

    2022年6月28日
    29
  • zoj Plants vs. Zombies(2018icpc青岛)[通俗易懂]

    zoj Plants vs. Zombies(2018icpc青岛)[通俗易懂]24 83 2 6 63 910 10 164题解贪心+二分#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 2e5 + 10;ll a[N],st[N]; int n,m;bool check(ll x){ memset(st,0,sizeof st); ll cnt = 0; for(int i = 1;i <= ..

    2022年8月9日
    5
  • 锐捷交换机配置保存到计算机,锐捷交换机常用配置命令汇总「建议收藏」

    锐捷交换机配置保存到计算机,锐捷交换机常用配置命令汇总「建议收藏」前面我们给大家汇总了华为、华三交换机的配置命令,都是非常适合小项目的,当然碰到大型的网络工程,还是需要厂家的专业人才来做。今天再给大家分享一下锐捷交换机的配置命令,这样国内三大家就全部都有了,学习一些基础网络知识还是不错的,尤其在视频监控系统中应用一下,还是可以的。正文:一、连接及远程登录用一台计算机作为控制台和网络设备相连接,通过计算机对网络设备进行配置。1、硬件连接把Console线一端连接在…

    2022年6月26日
    90
  • Java安全之Filter权限绕过

    Java安全之Filter权限绕过0x00前言在一些需要挖掘一些无条件RCE中,大部分类似于一些系统大部分地方都做了权限控制的,而这时候想要利用权限绕过就显得格外重要。在此来学习一波权限绕过的思

    2021年12月13日
    48
  • mapminmax 用法「建议收藏」

    mapminmax 用法「建议收藏」mapminmax是MATLAB实现归一化的工具包,默认:(1)将矩阵的每行分别进行归一化;(2)每行的最大值最小值作为每行归一化的xmin和xmax;(3)将数据归一化到[-1,1].若要将数据归一化到0到1之间,即y∈[0,1],使用b=mapminmax(a,0,1);若给与确定的最大值和最小值作为每行的xmin和xmax,使用:b= mapminmax(a,0,1);PS.xmin…

    2022年6月30日
    37
  • es6中padStart和padEnd

    es6中padStart和padEndpadStart和padEnd是es6中新增的语法这两个方法都是字符串原型上的方法,所以只能对字符串使用是新增的方法不会修改原字符串,只有es5才会改变原数据str.padStart(MaxLength,’填充的内容’)//当str的长度没有达到MaxLength,会将第二个参数填充到这个str前直到相当str.padEnd(MaxLength,’填充的内容’)//和上面一样不过是…

    2025年9月16日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号