用法一:

 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. 应用负载均衡之LVS(二):VS_TUN和VS_DR的arp问题

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  2. 实时滚动图表绘制方法: LightningChart教程 + 源码下载

    LightningChart图形控件彻底发挥了GPU加速和性能优化的最大效应,能够实时呈现超过10亿数据点的庞大数据,为大家提供先进与快速的图表库.这里的实时图实现的比较简单,大家先试一下这个效果,熟 ...

  3. SUSE-11 本地 zypper 配置

    配置本地 zypper 目的: 安装 SUSE-11 后想要再添加或删除软件组件将比较麻烦.通过配置本地 zypper 将可以从下载的软件仓库(repository)中安装软件包.   本地 zypp ...

  4. 获取网站证书的两种方法(wireshark or firefox nightly)

    一.使用Wireshark 截取数据包的方式 1. wireshark软件需要使用管理员权限运行,开始捕获后,按下ctrl + f,查找证书所在分组,从source 和destination 栏可以看 ...

  5. 【linux之shell脚本】

    一.简介 机器语言汇编语言高级语言 面向过程 C Shell Perl 面向对象 java python c++ 强语言:先编译再执行 java c++ 弱语言:边编译边执行 shell python ...

  6. dedecms织梦判断当前页面是首页、栏目页还是文章页

    根据全局变量$GLOBALS['_sys_globals']['curfile']的值来判断. 首页parview:列表页listview:文章页archives 应用示例: {dede:php}if ...

  7. pro asp.net mvc 5笔记

    1.Ninject条件绑定方法When(predicate)WhenClassHas<T>()WhenInj ectedInto<T>()例: kernel.Bind<I ...

  8. 使用nodejs搭建api的mock服务

    1. 介绍 公司的业务开发都是静态页面,开发前期总是避免不了获取api的问题.在vue中有一些mockjs的方案,方案都是注入性质的,和最终部署总是有差别,而且业务大部分还在zepto下,很难找到合适 ...

  9. 第十八章 DjangoWeb开发框架

    第十八章 DjangoWeb开发框架 第一课 内容概要: 1.JS正则 -登录注册验证 2.组件 1.BootStrap -css -js 学习BootStrap规则 2.jQueryUI -css ...

  10. c#IO的学习

    常见应用方面 一.路径的相关操作,如判定路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容:二.相关通用文件对话框,这些对话框可以帮助我们操作文件系统中的文件和目录:三.文件.目录 ...