• 在做国泰君安2016年中秋送电影票活动中,需要做这样一个手机页面,展示所有中奖用户的中奖信息。如下图:

要求对用户的后记号码中间5位做隐藏处理。最开始的处理方法是在对用户实体的get()方法做处理

 /**
* @return the mobile
*/
public String getMobile() {
if (mobile!=null&&mobile.matches("^0?[1][0-9]{10}$")) {
int le = mobile.length();
String start = mobile.substring(0, 3);
StringBuffer sb = new StringBuffer(start);
for (int i = 0; i < le - 6; i++) {
sb.append("*");
}
String end = mobile.substring(le - 3, le);
sb.append(end);
return sb.toString();
} else {
return "";
}
} /**
* @param mobile
* the mobile to set
*/
public void setMobile(String mobile) {
this.mobile = mobile;
}

但是不知道什么原因(原因以后补充),导致在用这个实体类向数据库中插入数据时,数据库的手机号码中间5位也被隐藏了。所以就放弃了这种方法。

我就来了一个比较蛮的方法,对查询回来的list数组for循环,但是由于list里面还包有一层list,所以一共有3重for循环,在有大量数据的情况下,响应会很慢,这种方法也不可用。

最后,王俊华帮我找到了一个简单的方法,就是在实体类中,新写了一个方法,作用相当于重载了前面提到的getMobile方法。

 /**
* @return the mobile
*/
public String getShortMobile() {
if (StringUtils.isNotBlank(mobile)) {
int le = mobile.length();
String start = mobile.substring(0, 3);
StringBuffer sb = new StringBuffer(start);
for (int i = 0; i < le - 6; i++) {
sb.append("*");
}
String end = mobile.substring(le - 3, le);
sb.append(end);
return sb.toString();
} else {
return "";
}
}

再对页面返回的json做了一点点改动,就能达到了想要的效果。

但是我暂时没有理解为什么可以这样做,等理解了再来补充。

关于freemaker的一点使用技巧的更多相关文章

  1. maven在idea中的一点使用技巧

    maven在idea中的一点使用技巧 idea已经支持将参数的意思也展示出来,确实很方便. -U是强制拉取,因为如果拉取某个jar包,失败了,那么在一段时间内,idea不会重试,除非指定-U. -X呢 ...

  2. ssm开发的一点小技巧

    一般使用反转工作生成基础bean如Items然后我们使用的实体类一般是基础bean的拓展类ItemsCustomer,继承自基础类,这个是为了方便对于表字段的更改生成的bean影响减低我们查询一般是使 ...

  3. android 操作sqlite的一点小技巧

    1.android 在sqlite插入数据时,是非常耗时的操作,原因是sqlite缺省会为每个插入操作开启一个事务,当数量变多的时候,自然时间就变得很慢,这时候可以考虑在插入等操作时先开启一个事务,再 ...

  4. 对于shell脚本参数获取时的一点小技巧

    问题如下: 根据脚本参数的个数$#进行一个循环,在依次输出每个参数$1 $2 $3...... 我有一个循环变量i $i 取到这时的i为1,我想使用这个1再去调用$1,也是就是打印出第一个参数 就是$ ...

  5. 使用yii中CSecurityManager的一点小技巧

    当我们使用CSecurityManager::encrypt对字符串进行加密, 加密后的字符串是一串乱码(看起来确实像乱码, 具体是什么有待考证), 这不利于我们的下一步操作. 我们可以使用base6 ...

  6. android rss阅读器开发一点小技巧

    这几天一直在学习开发Rss阅读器,遇到一个很坑的问题,InputSource这里总是出错.弄了好久,终于让我找到一个解决方法----看代码: new Thread(){ @Override publi ...

  7. Java一点输入输出技巧

    输入: 格式1:Scanner sc = new Scanner(System.in); 格式2:Scanner sc = new Scanner(new BufferedInputStream(Sy ...

  8. 用Visual Studio编写UDF的一点小技巧(二)

  9. 用Visual Studio编写UDF的一点小技巧(自动补全宏函数、变量)

    下载Visual Studio,安装VS 下载番茄助手(Visual Assist X),链接:www.wholetomato.com,然后安装番茄助手 打开VS

随机推荐

  1. windows + python + dlib

    我试了网上的各种教程,结果都是屁话 pip install dlib

  2. RHEL6.5 换源

    由于redhat的yum在线更新要收费,即没有注册的无法使用:将redhat的yum卸载.重装第三方源. 第三方源包括:网易,重庆大学,epel 等Author wood_man.2015.10.2 ...

  3. JavaNote01_变量 基本数据类型

    >主要内容: 变量的初始化.赋值.读写操作 8中基本数据类型(取值范围).整数的直接量(字面量)是哪种类型.浮点数的字面量是哪种类型 >变量 >>声明变量:开启一个存储单元,用 ...

  4. ios - NSTimer中target的self是强引用问题

    当控制器ViewController跳转进入控制器OneViewController中的时候开启定时器,让定时器每隔一段时间打印一次,当OneViewController dismiss的时候,控制器 ...

  5. error in config file "/etc/rabbitmq/rabbitmq.config"

    记录一次RabbitMQ配置文件配置错误 error信息: dill@ubuntu-vm:/usr/share/doc/rabbitmq-server$ sudo /usr/lib/rabbitmq/ ...

  6. HDU 4509 湫湫系列故事——减肥记II(线段树-区间覆盖 或者 暴力技巧)

    http://acm.hdu.edu.cn/showproblem.php?pid=4509 题目大意: 中文意义,应该能懂. 解题思路: 因为题目给的时间是一天24小时,而且还有分钟.为了解题方便, ...

  7. 【C# 基础应用】我的第一个App,不容易——随机生成小人网站,asp.net core

    Index page Welcome page 生成很多不同的小人哦~我是如何实现这么stupid but interesting的程序呢?我用了ASP.NET Core 画小人的话,用了一个很stu ...

  8. LinuxStudyNote

    LinuxStudyNoteBy_Silvers:(E:\Video_Tutorials\Linux自学视频\linux视频教程-后盾网视频教程)22:25 2016/1/28============ ...

  9. dell r710xd 通过远程管理卡安装系统

    机器dell r720xd 服务器 远程管理卡:iDRAC7 安装系统CentOS 5.9 64位 1.首先得配置要管理口IP信息及用户名.密码(这里就不做介绍了) 2.登录远程管理 https:// ...

  10. linux更改 DNS 的一般方式

    一.第一种方法(常规方法) 在 Linux (笔者用fedora) 下当使用 NetworkManager时,更改 DNS 的一般方式: 修改 /etc/resolv.conf 文件, 添加 &quo ...