用法一:

 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");//获取填写的用户名
         /**
          * 密&nbsp;&nbsp;码(密码框):<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用法的更多相关文章

  1. MessageFormat.format()用法

    1.java.text.Format的继承结构如下   2.MessageFormat模式 FormatElement { ArgumentIndex }:是从0开始的入参位置索引 { Argumen ...

  2. java MessageFormat.format 用法

    FormatElement: { ArgumentIndex }:是从0开始的入参位置索引. { ArgumentIndex , FormatType } { ArgumentIndex , Form ...

  3. String.format和MessageFormat.format的对比用法

    1.MessageFormat.format import java.text.MessageFormat; /** * Created by SYJ on 2017/9/13. */ public ...

  4. 关于java中MessageFormat.format中单引号问题

    我们知道java中可以用MessageFormat.format来格式化字符串.这个方法在我们的实际开发中经常用到,有点类似模板,这样我们就不需要用很恶心的拼接字符串了.如下面 String s1=& ...

  5. Java魔法堂:初探MessageFormat.format和ChoiceFormat

    一.前言 刚开始从.net的转向java的时候总觉得 String.format 用得不习惯,希望格式模版会这样 {}, }$s,$s's cat.%2$s,this is %1$s's dog. . ...

  6. MessageFormat理解,MessageFormat.format(Object obj)方法

    MessageFormat.format(Object obj)方法主要用途为拼接message信息 用法: Object[] testArgs = {new String("张三" ...

  7. 7. JDK拍了拍你:字符串拼接一定记得用MessageFormat#format

    目录 ✍前言 版本约定 ✍正文 DateFormat:日期时间格式化 SimpleDateFormat NumberFormat:数字格式化 DecimalFormat 一.0和#的使用(最常见使用场 ...

  8. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  9. String.format()用法

    package junit.test;   import java.util.Date; import java.util.Locale;   import org.junit.Test;   pub ...

随机推荐

  1. 01 Mybatis 的配置和使用

    一.Mybatis 是什么 MyBatis 是一个支持普通SQL查询.存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装.MyB ...

  2. ACE_TEST1.obj : error LNK2019: 无法解析的外部符号

    ACE_TEST1.obj : error LNK2019: 无法解析的外部符号 "int __cdecl ace_main_i(int,char * * const)" (?ac ...

  3. uboot之位置无关代码解析

    在之前的话 新年过去了,那么久没有好好学习,感觉好颓废,现在就uboot的一些基础问题做一些笔记,顺便分享给大家,不过由于见识有限,如果有不足之处请多多指教. 位置无关?什么意思?我们先了解一些基础知 ...

  4. python 路飞模块一考核总结

    1. 分别解释"=","==","+="的含义(口述) =为赋值语句,把一个变量值赋予另一个值 == 为条件判断,判断两个值是否相等 += ...

  5. composer引用本地git做为源库

    PHP使用者大多对composer是又爱又恨,爱的是composer require后,很多类库不用去下载了,恨的是网速卡成翔,虽然国内有很多道友做了镜象,但对于bower库这些都还是整体更新. 那么 ...

  6. 如何知道你的linux是什么时候安装的

    在安装系统时,每个分区下都会有一个 lost+found,而且这个目录的创建时间是和该分区创建的时间一样的.所以如果想知道你的系统是什么时候安装的,只需要看这个目录的创建时间即可. 通常情况下,我们分 ...

  7. 洛谷P4014 分配问题【最小/大费用流】题解+AC代码

    洛谷P4014 分配问题[最小/大费用流]题解+AC代码 题目描述 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为c ij. 试设计一个将 n 件工作分配给 n 个人做的 ...

  8. mssql学习

    1.创建表和数据插入SQL 我们在开始创建数据表和向表中插入演示数据之前,我想给大家解释一下实时数据表的设计理念,这样也许能帮助大家能更好的理解SQL查询. 在数据库设计中,有一条非常重要的规则就是要 ...

  9. centos/linux下的安装mysql

    1.从yum 下面下载mysql数据库 yum -y install mysql-server 2.查询该mysql是否安装完成 rpm -qa|grep mysql-server 出现如下图所示标明 ...

  10. css渲染(一) 字体和文本

    一.字体属性 1.默认字体系列 chrome/opera:"宋体" firefox:"微软雅黑" safari/IE:Times,"宋体" ...