用法一:

 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. 3167: [Heoi2013]Sao [树形DP]

    3167: [Heoi2013]Sao 题意: n个点的"有向"树,求拓扑排序方案数 Welcome to Sword Art Online!!! 一开始想错了...没有考虑一个点 ...

  2. Java获得系统的外网IP

    关于如何获得系统外网IP?在网上找了好久,大多数解决方案都没法直接用,所以今天和大家分享一段获得外网IP的代码! import java.net.Inet4Address; import java.n ...

  3. 【IT人】如何提高阅读源代码的效率

    1.最近刚到公司,公司就发一架构代码自己看,看了几天看的想吐,也在网上找了下相关的技巧吧,不是有句话叫做:成功必有方法,失败总是借口! 2.借鉴别人的方法来看看如下: 记得在开源流行之前,我看过的代码 ...

  4. 自兴人工智能——Python运算符和操作对象

    在Python中支持以下7种运算符: 1.算数运算符: +(加),-(减),*(乘),/(除),%(取余),**(幂):返回x的y次幂,//(取整除):返回商的整数部分 2.比较运算符:(返回的是一个 ...

  5. Angular 向组件传递模板的几种方法

    最近在写一个日期选择器组件,为了满足将来可能出现的各种需求,所以需要能够高度的自定义组件的样式.为了达到这个目的,需要能够在日期选择器组件外控制每个日期格子内要显示的内容,比如,标上节假日之类的.这时 ...

  6. 浅显总结ASCII Unicode UTF-8的区别

    如果觉得此地排版不好,欢迎访问我的博客 浅显总结ASCII Unicode UTF-8的区别 制作表单时,为了追求更好的用户交互体验,常常会有提示性的内容,比如提醒用户字符的限制.由于英文,中文字符的 ...

  7. TJ4运行环境

    http://springwq2011.blog.51cto.com/4332889/966028 http://blog.csdn.net/u013573789/article/details/45 ...

  8. [记]Debian alias 设置, 不设置貌似有点不方便习惯

    备忘录,记录下. 不知道 当前有那些 alias 的话 直接输入 alias ,回车就可以看到 alias 列表. 终端输入: vim ~/bash_aliases 然后输入: # some more ...

  9. Taurus.MVC 2.2.3.4 :WebAPI 实现权限控制认证(及功能增强说明)

    前言: 前两天,当我还在老家收拾行旅,准备回广州,为IT连的创业再战365天时, 有网友扣上问:Taurus.MVC中如何实现认证和权限控制,最好能做个小例子. 我一不小心回了句:等回广州我再写篇文章 ...

  10. [翻译] 编写高性能 .NET 代码--第二章 GC -- 配置选项

    配置选项 在基于"less rope to hang yourself with"思想下,.NET 框架没有给开发提供很多太多的配置选项.但在大多数情况下,GC会跟你的硬件配置,及 ...