MessageFormat.format用法
用法一:
package gacl.request.study; import java.io.IOException; import java.text.MessageFormat; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author gacl * 获取客户端通过Form表单提交上来的参数 */ public class RequestDemo03 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //客户端是以UTF-8编码提交表单数据的,所以需要设置服务器端以UTF-8的编码进行接收,否则对于中文数据就会产生乱码 request.setCharacterEncoding("UTF-8"); /** * 编 号(文本框): <input type="text" name="userid" value="NO." size="2" maxlength="2"> */ String userid = request.getParameter("userid");//获取填写的编号,userid是文本框的名字,<input type="text" name="userid"> /** * 用户名(文本框):<input type="text" name="username" value="请输入用户名"> */ String username = request.getParameter("username");//获取填写的用户名 /** * 密 码(密码框):<input type="password" name="userpass" value="请输入密码"> */ String userpass = request.getParameter("userpass");//获取填写的密码 String sex = request.getParameter("sex");//获取选中的性别 String dept = request.getParameter("dept");//获取选中的部门 //获取选中的兴趣,因为可以选中多个值,所以获取到的值是一个字符串数组,因此需要使用getParameterValues方法来获取 String[] insts = request.getParameterValues("inst"); String note = request.getParameter("note");//获取填写的说明信息 String hiddenField = request.getParameter("hiddenField");//获取隐藏域的内容 String instStr=""; /** * 获取数组数据的技巧,可以避免insts数组为null时引发的空指针异常错误! */ for (int i = 0; insts!=null && i < insts.length; i++) { if (i == insts.length-1) { instStr+=insts[i]; }else { instStr+=insts[i]+","; } } String htmlStr = "<table>" + "<tr><td>填写的编号:</td><td>{0}</td></tr>" + "<tr><td>填写的用户名:</td><td>{1}</td></tr>" + "<tr><td>填写的密码:</td><td>{2}</td></tr>" + "<tr><td>选中的性别:</td><td>{3}</td></tr>" + "<tr><td>选中的部门:</td><td>{4}</td></tr>" + "<tr><td>选中的兴趣:</td><td>{5}</td></tr>" + "<tr><td>填写的说明:</td><td>{6}</td></tr>" + "<tr><td>隐藏域的内容:</td><td>{7}</td></tr>" + "</table>"; htmlStr = MessageFormat.format(htmlStr, userid,username,userpass,sex,dept,instStr,note,hiddenField); response.setCharacterEncoding("UTF-8");//设置服务器端以UTF-8编码输出数据到客户端 response.setContentType("text/html;charset=UTF-8");//设置客户端浏览器以UTF-8编码解析数据 response.getWriter().write(htmlStr);//输出htmlStr里面的内容到客户端浏览器显示 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
从上面我们可以看到MessageFormat.format就是一个站位符,其中0 到7分别代表userid到hiddenFiled的值。
用法二:
//request对象封装的参数是以Map的形式存储的 Map<String, String[]> paramMap = request.getParameterMap(); for(Map.Entry<String, String[]> entry :paramMap.entrySet()){ String paramName = entry.getKey(); String paramValue = ""; String[] paramValueArr = entry.getValue(); for (int i = 0; paramValueArr!=null && i < paramValueArr.length; i++) { if (i == paramValueArr.length-1) { paramValue+=paramValueArr[i]; }else { paramValue+=paramValueArr[i]+","; } } System.out.println(MessageFormat.format("{0}={1}", paramName,paramValue)); }
从这个案例中我们可以看到 {0}={1}代表着输出的格式,后面是属性。
用法三:
public int insertToTest_tb(String createTime,String datefrom,String dateto,String name,String intranetid,String actualhour,String planhour,String status) throws Exception{ StringBuilder sb=new StringBuilder(); sb.append(" insert into test_tb ("); sb.append(" createTime, "); sb.append(" datefrom, "); sb.append(" dateto, "); sb.append(" name, "); sb.append(" intranetid, "); sb.append(" actualhour, "); sb.append(" planhour, "); sb.append(" status"); sb.append(" ) values ("); sb.append(" ''{0}'',"); sb.append(" ''{1}'',"); sb.append(" ''{2}'',"); sb.append(" ''{3}'',"); sb.append(" ''{4}'',"); sb.append(" ''{5}'',"); sb.append(" ''{6}'',"); sb.append(" ''{7}''"); sb.append(" )"); String result=sb.toString(); Object[] arr={createTime,datefrom,dateto,name,intranetid,actualhour,planhour,status}; String sql=MessageFormat.format(result, arr); return this.getJdbcTemplate().update(sql); }
直接这样用,不用添加参数。其实和用法一是一样的。
假如想用更丰富的可以用
JAVA字符串格式化-String.format()的使用
MessageFormat.format用法的更多相关文章
- MessageFormat.format()用法
1.java.text.Format的继承结构如下 2.MessageFormat模式 FormatElement { ArgumentIndex }:是从0开始的入参位置索引 { Argumen ...
- java MessageFormat.format 用法
FormatElement: { ArgumentIndex }:是从0开始的入参位置索引. { ArgumentIndex , FormatType } { ArgumentIndex , Form ...
- String.format和MessageFormat.format的对比用法
1.MessageFormat.format import java.text.MessageFormat; /** * Created by SYJ on 2017/9/13. */ public ...
- 关于java中MessageFormat.format中单引号问题
我们知道java中可以用MessageFormat.format来格式化字符串.这个方法在我们的实际开发中经常用到,有点类似模板,这样我们就不需要用很恶心的拼接字符串了.如下面 String s1=& ...
- Java魔法堂:初探MessageFormat.format和ChoiceFormat
一.前言 刚开始从.net的转向java的时候总觉得 String.format 用得不习惯,希望格式模版会这样 {}, }$s,$s's cat.%2$s,this is %1$s's dog. . ...
- MessageFormat理解,MessageFormat.format(Object obj)方法
MessageFormat.format(Object obj)方法主要用途为拼接message信息 用法: Object[] testArgs = {new String("张三" ...
- 7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format
目录 ✍前言 版本约定 ✍正文 DateFormat:日期时间格式化 SimpleDateFormat NumberFormat:数字格式化 DecimalFormat 一.0和#的使用(最常见使用场 ...
- C#中string.format用法详解
C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...
- String.format()用法
package junit.test; import java.util.Date; import java.util.Locale; import org.junit.Test; pub ...
随机推荐
- BZOJ 3265: 志愿者招募加强版 [单纯形法]
传送门 一个人多段区间,一样.... 不过国家队论文上说这道题好像不能保证整数解.... #include <iostream> #include <cstdio> #incl ...
- BZOJ 2809: [Apio2012]dispatching [斜堆]
题意:主席树做法见上一题 我曾发过誓再也不写左偏树(期末考试前一天下午5个小时没写出棘手的操作) 于是我来写斜堆啦 从叶子往根合并,维护斜堆就行了 题目连拓扑序都给你了... 说一下斜堆的操作: 合并 ...
- 高仿QQ Xplan的H5页面
概述 这个h5的主要玩法很简单:地球自转的时候会播放背景音乐(比如海浪声),为了找到这个声音是从哪个地球上哪个地方传来的,需要长按下方的按钮,这时地球会自动转动到目标地点,然后镜头拉近,穿过云层,最后 ...
- java生产者与消费者模式
前言: 生产者和消费者模式是我们在学习多线程中很经典的一个模式,它主要分为生产者和消费者,分别是两个线程, 目录 一:生产者和消费者模式简介 二:生产者和消费者模式的实现 声明:本例来源于java经典 ...
- Atom Mac安装 有快捷方式
https://jeffjade.com/2016/03/03/2016-03-02-how-to-use-atom/ 如何在 PyCharm 中使用 MacDown 作为外部编辑器 新编码神器Ato ...
- vue 路由懒加载 使用,优化对比
vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,时间过长,会出啊先长时间的白屏,即使做了loading也是不利于用户体验,而运 ...
- 变态的IE
1.IE7及更早版本, unshift()方法总是返回undefined而不是数组的新长度.2.IE8及之前版本, 在catch语句中捕获的错误对象会被添加到执行环境的变量对象, 而不是catch语句 ...
- Mysql主从复制_模式之日志点复制
MySQL数据复制的原理 MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).因此,要进行复制,必须在主服务器上启用二进制日志. 每个从服务器从主服务器接收主服务器已经记 ...
- the c programing language 学习过程4
4Functions and Program Structure scratch 刮擦 starting over from scratch从头开始 reside驻留 separately 分别的 f ...
- 【Learning】 欧拉回路的求解
欧拉回路: 欧拉回路,俗称一笔画,比如一笔画五角星等. 这里给出非严谨的定义:欧拉回路即从一个点出发,不重复.不遗漏地经过所有的边与所有的点,并恰好回到出发点. 包含欧拉回路的图称为欧拉图. 欧拉回路 ...