java MessageFormat 应用 和 疑惑
先来个demo
String string = "{0}\"{1}\"";
System.out.println(MessageFormat.format(string, "test","justfortest"));
这个代码片段说明了MessageFormat的简单用法,比较方便,省去了我们的字符串的拼装。
MessageFormat.format(String partten,Object... params) api简介
partten 为“各种文字{0}加上占位符{1}”,其中{num}是占位符,和params 位置对应
但是MessageFormat 也不是万能的,她也会出错看看一下代码,猜猜结果
	String a = "<li><div class='icon'> <em class={0}></em> </div>"
		+ "<div class='txt'>"
		+ "<p>{1}</p>"
		+ " <p><a href='javascript:void(0)' onclick='downAttachment('{2}',this)'>预览</a></p></div><p class='clear'></p> </li>";
		System.out.println(MessageFormat.format(a, "one","two","three"));
结果让人吃惊:
<li><div class=icon> <em class={0}></em> </div><div class=txt><p>two</p> <p><a href=javascript:void(0) onclick=downAttachment(three,this)>预览</a></p></div><p class=clear></p> </li>
说明:以上代码是公司action中的代码,这样的代码真的很垃圾,action中怎么能有 前台页面的代码呢,耦合性高,维护困难,通用性差,各种不方便;但是没有办法,这种垃圾代码还是要维护的,以前用的是string 拼接,换种方式,用了MessageFormat.
为什么{0} 没有被替换掉呢??
大家用的时候要小心啊,具体原因,等吃过饭查查,在此做个记录
java MessageFormat 应用 和 疑惑的更多相关文章
- java MessageFormat.format 用法
		FormatElement: { ArgumentIndex }:是从0开始的入参位置索引. { ArgumentIndex , FormatType } { ArgumentIndex , Form ... 
- Java语法基础常见疑惑解答
		1. 类是java的最小单位,java的程序必须在类中才能运行 2. java函数加不加static有何不同 java中声明为static的方法称为静态方法或类方法.静态方法可以直接调用静态方法,访问 ... 
- java MessageFormat.format
		sql 语句中格式化,如果加入{}占位符,要替代的是整形变量,而恰好这个整形变量的位数超过4位, MessageFormat.format 会在这个整形变量中默认每隔三位加一个逗号,类似这样:1000 ... 
- java学习中一些疑惑解答(2)
		(一)继承条件下构造方法的调用 以下面的源代码为例: package ktdemo; class Grandparent { public Grandparent() { System.out.pri ... 
- Java语法基础常见疑惑解答8,16,17,21图片补充
		8. 16. 17. 21 
- javaweb学习总结(六)——Servlet开发(三)  常见问题疑问
		[1]response.getWriter().write()与out.print()的区别http://blog.csdn.net/javaloveiphone/article/details/81 ... 
- Spark案例分析
		一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ... 
- 关于java中MessageFormat.format中单引号问题
		我们知道java中可以用MessageFormat.format来格式化字符串.这个方法在我们的实际开发中经常用到,有点类似模板,这样我们就不需要用很恶心的拼接字符串了.如下面 String s1=& ... 
- 【java消息格式化】使用MessageFormat进行消息格式化
		主要介绍了: 消息格式化的基本使用: 格式化:匹配数字: 格式化:匹配日期: 格式化:匹配时间: 格式化:多次匹配: MessageFormat用来格式化一个消息,通常是一个字符串.MessageFo ... 
随机推荐
- C#线程池ThreadPool.QueueUserWorkItem接收线程执行的方法返回值
			最近在项目中需要用到多线程,考虑了一番,选择了ThreadPool,我的需求是要拿到线程执行方法的返回值, 但是ThreadPool.QueueUserWorkItem的回调方法默认是没有返回值的,搜 ... 
- js正则实现用户输入银行卡号的控制及格式化
			//js正则实现用户输入银行卡号的控制及格式化 <script language="javascript" type="text/javascript"& ... 
- Objective-C总Runtime的那点事儿(一)消息机制【转】
			RunTime简称运行时.就是系统在运行的时候的一些机制,其中最主要的是消息机制.对于C语言,函数的调用在编译的时候会决定调用哪个函数( C语言的函数调用请看这里 ).编译完成之后直接顺序执行,无任何 ... 
- Mysql 目录恢复注意事项
			SET @mycnt=0; SELECT @mycnt := @mycnt +1 as mycnt, a.*, b.* FROM a, b; 表中第一列即为mycnt,从1开始计数. set @num ... 
- jQuery网页加载进度条插件
			jquery.pace.js会自动监测你的Ajax请求,事件循环滞后,记录您的页面上准备状态和元素来决定的进度情况. 将pace.js和主题css的添加到您的网页! pace.js会自动监测你的Aja ... 
- apt-cache madison package-name
			apt-cache madison package-name 搜索软件有那些可用版本, 
- 在MAC下 Python+Django+mysql配置
			今天在搭建Django+mysql环境的时候遇到了一点问题,记录下来. 安装环境:OS X 10.10操作系统,Python 2.7. MySQLdb其实包含在MySQL-python包中,因此无论下 ... 
- SVN 使用的简单整理
			1. 在SVN服务器上创建存储Dir,并和个人主机建立联系. 现在SVN服务器上创建一个存储文件夹svn_storeDir.然后在个人电脑上建立一个本地文件夹local_Dir. 进入 ... 
- [walkthrough] 在Asp.net MVC6 RC里使用NLog,并且把配置集成到config.json
			说明一下:本文基于随visual studio 2015 RC公开的DNX1.0.0-beta4,git上最新的aspnet的开发版本已经发生了很大变化. 首先,理论部分看[汤姆大叔的博客] 解读AS ... 
- Java中间件
			传统的HTML已经满足不了如今web系统的诸多的功能需求,建立一个交互式的Web,便诞生了各种Web开发语言,如ASP,JSP,PHP等,这些语言与传统的语言有着密切的联系,如JSP基于Java语言. ... 
