基于spring-web(4.1.4)包的org.springframework.web.bind.ServletRequestUtils工具类对HttpServletRequest获取的传递入参获取request.getParameter进行常见默认数据类型(整型IntParser、长整型LongParser、浮点数类型FloatParser、双精度浮点数、布尔型类型DoubleParser、字符串类型StringParser)的转换,源码如下所示

package org.springframework.web.bind;

import javax.servlet.ServletRequest;

public abstract class ServletRequestUtils
{
  private static final IntParser INT_PARSER = new IntParser(null);
  private static final LongParser LONG_PARSER = new LongParser(null);
  private static final FloatParser FLOAT_PARSER = new FloatParser(null);
  private static final DoubleParser DOUBLE_PARSER = new DoubleParser(null);
  private static final BooleanParser BOOLEAN_PARSER = new BooleanParser(null);
  private static final StringParser STRING_PARSER = new StringParser(null);   public static Integer getIntParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    if (request.getParameter(name) == null)
      return null;     return Integer.valueOf(getRequiredIntParameter(request, name));
  }   public static int getIntParameter(ServletRequest request, String name, int defaultVal)
  {
    if (request.getParameter(name) == null)
      return defaultVal;
    try
    {
      return getRequiredIntParameter(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return defaultVal;
  }   public static int[] getIntParameters(ServletRequest request, String name)
  {
    try
    {
      return getRequiredIntParameters(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return new int[0];
  }   public static int getRequiredIntParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return INT_PARSER.parseInt(name, request.getParameter(name));
  }   public static int[] getRequiredIntParameters(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return INT_PARSER.parseInts(name, request.getParameterValues(name));
  }   public static Long getLongParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    if (request.getParameter(name) == null)
      return null;     return Long.valueOf(getRequiredLongParameter(request, name));
  }   public static long getLongParameter(ServletRequest request, String name, long defaultVal)
  {
    if (request.getParameter(name) == null)
      return defaultVal;
    try
    {
      return getRequiredLongParameter(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return defaultVal;
  }   public static long[] getLongParameters(ServletRequest request, String name)
  {
    try
    {
      return getRequiredLongParameters(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return new long[0];
  }   public static long getRequiredLongParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return LONG_PARSER.parseLong(name, request.getParameter(name));
  }   public static long[] getRequiredLongParameters(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return LONG_PARSER.parseLongs(name, request.getParameterValues(name));
  }   public static Float getFloatParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    if (request.getParameter(name) == null)
      return null;     return Float.valueOf(getRequiredFloatParameter(request, name));
  }   public static float getFloatParameter(ServletRequest request, String name, float defaultVal)
  {
    if (request.getParameter(name) == null)
      return defaultVal;
    try
    {
      return getRequiredFloatParameter(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return defaultVal;
  }   public static float[] getFloatParameters(ServletRequest request, String name)
  {
    try
    {
      return getRequiredFloatParameters(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return new float[0];
  }   public static float getRequiredFloatParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return FLOAT_PARSER.parseFloat(name, request.getParameter(name));
  }   public static float[] getRequiredFloatParameters(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return FLOAT_PARSER.parseFloats(name, request.getParameterValues(name));
  }   public static Double getDoubleParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    if (request.getParameter(name) == null)
      return null;     return Double.valueOf(getRequiredDoubleParameter(request, name));
  }   public static double getDoubleParameter(ServletRequest request, String name, double defaultVal)
  {
    if (request.getParameter(name) == null)
      return defaultVal;
    try
    {
      return getRequiredDoubleParameter(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return defaultVal;
  }   public static double[] getDoubleParameters(ServletRequest request, String name)
  {
    try
    {
      return getRequiredDoubleParameters(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return new double[0];
  }   public static double getRequiredDoubleParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return DOUBLE_PARSER.parseDouble(name, request.getParameter(name));
  }   public static double[] getRequiredDoubleParameters(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return DOUBLE_PARSER.parseDoubles(name, request.getParameterValues(name));
  }   public static Boolean getBooleanParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    if (request.getParameter(name) == null)
      return null;     return Boolean.valueOf(getRequiredBooleanParameter(request, name));
  }   public static boolean getBooleanParameter(ServletRequest request, String name, boolean defaultVal)
  {
    if (request.getParameter(name) == null)
      return defaultVal;
    try
    {
      return getRequiredBooleanParameter(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return defaultVal;
  }   public static boolean[] getBooleanParameters(ServletRequest request, String name)
  {
    try
    {
      return getRequiredBooleanParameters(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return new boolean[0];
  }   public static boolean getRequiredBooleanParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return BOOLEAN_PARSER.parseBoolean(name, request.getParameter(name));
  }   public static boolean[] getRequiredBooleanParameters(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return BOOLEAN_PARSER.parseBooleans(name, request.getParameterValues(name));
  }   public static String getStringParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    if (request.getParameter(name) == null)
      return null;     return getRequiredStringParameter(request, name);
  }   public static String getStringParameter(ServletRequest request, String name, String defaultVal)
  {
    String val = request.getParameter(name);
    return ((val != null) ? val : defaultVal);
  }   public static String[] getStringParameters(ServletRequest request, String name)
  {
    try
    {
      return getRequiredStringParameters(request, name);
    } catch (ServletRequestBindingException ex) {
    }
    return new String[0];
  }   public static String getRequiredStringParameter(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return STRING_PARSER.validateRequiredString(name, request.getParameter(name));
  }   public static String[] getRequiredStringParameters(ServletRequest request, String name)
    throws ServletRequestBindingException
  {
    return STRING_PARSER.validateRequiredStrings(name, request.getParameterValues(name));
  }   private static class StringParser extends ServletRequestUtils.ParameterParser<String>
  {
    private StringParser()
    {
      super(null);
    }     protected String getType() {
      return "string";
    }     protected String doParse(String parameter) throws NumberFormatException
    {
      return parameter;
    }     public String validateRequiredString(String name, String value) throws ServletRequestBindingException {
      validateRequiredParameter(name, value);
      return value;
    }     public String[] validateRequiredStrings(String name, String[] values) throws ServletRequestBindingException {
      validateRequiredParameter(name, values);
      String[] arrayOfString = values; int i = arrayOfString.length; for (int j = 0; j < i; ++j) { String value = arrayOfString[j];
        validateRequiredParameter(name, value);
      }
      return values;
    }
  }   private static class BooleanParser extends ServletRequestUtils.ParameterParser<Boolean>
  {
    private BooleanParser()
    {
      super(null);
    }     protected String getType() {
      return "boolean";
    }     protected Boolean doParse(String parameter) throws NumberFormatException
    {
      return Boolean.valueOf((parameter.equalsIgnoreCase("true")) || (parameter.equalsIgnoreCase("on")) || 
        (parameter
        .equalsIgnoreCase("yes")) || 
        (parameter.equals("1")));
    }     public boolean parseBoolean(String name, String parameter) throws ServletRequestBindingException {
      return ((Boolean)parse(name, parameter)).booleanValue();
    }     public boolean[] parseBooleans(String name, String[] values) throws ServletRequestBindingException {
      validateRequiredParameter(name, values);
      boolean[] parameters = new boolean[values.length];
      for (int i = 0; i < values.length; ++i)
        parameters[i] = parseBoolean(name, values[i]);       return parameters;
    }
  }   private static class DoubleParser extends ServletRequestUtils.ParameterParser<Double>
  {
    private DoubleParser()
    {
      super(null);
    }     protected String getType() {
      return "double";
    }     protected Double doParse(String parameter) throws NumberFormatException
    {
      return Double.valueOf(parameter);
    }     public double parseDouble(String name, String parameter) throws ServletRequestBindingException {
      return ((Double)parse(name, parameter)).doubleValue();
    }     public double[] parseDoubles(String name, String[] values) throws ServletRequestBindingException {
      validateRequiredParameter(name, values);
      double[] parameters = new double[values.length];
      for (int i = 0; i < values.length; ++i)
        parameters[i] = parseDouble(name, values[i]);       return parameters;
    }
  }   private static class FloatParser extends ServletRequestUtils.ParameterParser<Float>
  {
    private FloatParser()
    {
      super(null);
    }     protected String getType() {
      return "float";
    }     protected Float doParse(String parameter) throws NumberFormatException
    {
      return Float.valueOf(parameter);
    }     public float parseFloat(String name, String parameter) throws ServletRequestBindingException {
      return ((Float)parse(name, parameter)).floatValue();
    }     public float[] parseFloats(String name, String[] values) throws ServletRequestBindingException {
      validateRequiredParameter(name, values);
      float[] parameters = new float[values.length];
      for (int i = 0; i < values.length; ++i)
        parameters[i] = parseFloat(name, values[i]);       return parameters;
    }
  }   private static class LongParser extends ServletRequestUtils.ParameterParser<Long>
  {
    private LongParser()
    {
      super(null);
    }     protected String getType() {
      return "long";
    }     protected Long doParse(String parameter) throws NumberFormatException
    {
      return Long.valueOf(parameter);
    }     public long parseLong(String name, String parameter) throws ServletRequestBindingException {
      return ((Long)parse(name, parameter)).longValue();
    }     public long[] parseLongs(String name, String[] values) throws ServletRequestBindingException {
      validateRequiredParameter(name, values);
      long[] parameters = new long[values.length];
      for (int i = 0; i < values.length; ++i)
        parameters[i] = parseLong(name, values[i]);       return parameters;
    }
  }   private static class IntParser extends ServletRequestUtils.ParameterParser<Integer>
  {
    private IntParser()
    {
      super(null);
    }     protected String getType() {
      return "int";
    }     protected Integer doParse(String s) throws NumberFormatException
    {
      return Integer.valueOf(s);
    }     public int parseInt(String name, String parameter) throws ServletRequestBindingException {
      return ((Integer)parse(name, parameter)).intValue();
    }     public int[] parseInts(String name, String[] values) throws ServletRequestBindingException {
      validateRequiredParameter(name, values);
      int[] parameters = new int[values.length];
      for (int i = 0; i < values.length; ++i)
        parameters[i] = parseInt(name, values[i]);       return parameters;
    }
  }   private static abstract class ParameterParser<T>
  {
    protected final T parse(String name, String parameter)
      throws ServletRequestBindingException
    {
      validateRequiredParameter(name, parameter);
      try {
        return doParse(parameter);
      }
      catch (NumberFormatException ex)
      {
        throw new ServletRequestBindingException("Required " + 
          getType() + " parameter '" + name + "' with value of '" + parameter + "' is not a valid number", ex);
      }
    }     protected final void validateRequiredParameter(String name, Object parameter)
      throws ServletRequestBindingException
    {
      if (parameter == null)
        throw new MissingServletRequestParameterException(name, getType());
    }     protected abstract String getType();     protected abstract T doParse(String paramString)
      throws NumberFormatException;
  }
}

关于通过spring-web的ServletRequestUtils工具类对获取getParameter传参的默认转换基本数据类型的学习的更多相关文章

  1. Spring统一返回Json工具类,带分页信息

    前言: 项目做前后端分离时,我们会经常提供Json数据给前端,如果有一个统一的Json格式返回工具类,那么将大大提高开发效率和减低沟通成本. 此Json响应工具类,支持带分页信息,支持泛型,支持Htt ...

  2. 获取Spring容器Bean对象工具类

    在开发中,总是能碰到用注解注入不了Spring容器里面bean对象的问题.为了解决这个问题,我们需要一个工具类来直接获取Spring容器中的bean.因此就写了这个工具类,在此记录一下,方便后续查阅. ...

  3. 使用scanner工具类来获取用户输入的信息

    使用scanner工具类来获取用户输入的成绩信息. 步骤:1.导入java.util.Scanner包 2.创建Scanner对象 3.接受并保存用户输入的值 例子:通过用户输入来获取学生成绩 pac ...

  4. java Http消息传递之POST和GET两种方法--通过实用工具类来获取服务器资源

    实现该方法需要导入一些jar包 可以去一下地址下载: http://pan.baidu.com/s/1hqrJF7m /** * 实用工具类来获取服务器资源 * * get方法传送数据 * * 1.通 ...

  5. Java 工具类 IpUtil - 获取本机所有 IP 地址,LocalHost 对应地址 IP

    Java 工具类 IpUtil - 获取本机所有 IP 地址,LocalHost 对应地址 IP IP 工具类 源代码: /** * <p> * * @author XiaoPengwei ...

  6. Spring 常用的一些工具类

    学习Java的人,或者开发很多项目,都需要使用到Spring 这个框架,这个框架对于java程序员来说.学好spring 就不怕找不到工作.我们时常会写一些工具类,但是有些时候 我们不清楚,我们些的工 ...

  7. Maven基础&&Spring框架阶段常用工具类整理

    常用工具类 1.密码加密工具类: package com.itheima.utils; import java.security.MessageDigest; import sun.misc.BASE ...

  8. 获取spring上下文的bean 工具类

    有些场景我们不属于controller,service,dao,但是我们需要从spring中得到spring容器里面的bean.这时候我们需要一个类继承 ApplicationContextAware ...

  9. Spring boot中普通工具类不能使用@Value注入yml文件中的自定义参数的问题

    在写一个工具类的时候,因为要用到yml中的自定义参数,使用@Value发现值不能正常注入,都显示为null: yml文件中的自定义格式 调用工具类的时候不能new的方式 要使用@Autowired的方 ...

随机推荐

  1. PHP根据两点间的经纬度计算距离

    /** * 说明: 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($lat ...

  2. 数据结构-二叉树的遍历(类C语言描写叙述)

    遍历概念     所谓遍历(Traversal)是指沿着某条搜索路线.依次对树中每一个结点均做一次且仅做一次訪问.訪问结点所做的操作依赖于详细的应用问题. 遍历是二叉树上最重要的运算之中的一个,是二叉 ...

  3. OpenCV图像处理篇之图像平滑

    图像平滑算法 图像平滑与图像模糊是同一概念,主要用于图像的去噪.平滑要使用滤波器.为不改变图像的相位信息,一般使用线性滤波器,其统一形式例如以下: %20\Large%20g(i,j)=\sum_{k ...

  4. Ubuntu16.04下安装Tensorflow CPU版本(图文详解)

    不多说,直接上干货! 推荐 全网最详细的基于Ubuntu14.04/16.04 + Anaconda2 / Anaconda3 + Python2.7/3.4/3.5/3.6安装Tensorflow详 ...

  5. 主机与虚拟机互ping

    1.设置虚拟机网络连接方式(如下图): 2.设置主机和虚拟机的ip为同一个网段,如主机ip:192.168.28.1,虚拟机ip:192.168.28.128 3.如果相互还是ping不通,就检查一下 ...

  6. web前端技术社区分享

    web前端技术社区分享 一.国外的前端技术网站:    1. 名称:W3C: 网址:http://www.w3.org/ 理由:前端技术的规范标准几乎都是W3C制定的  2.名称:ECMA 网址:ht ...

  7. NSArray, NSSet, NSDictionary

    一.Foundation framework中用于收集cocoa对象(NSObject对象)的三种集合分别是: NSArray 用于对象有序集合(数组)NSSet 用于对象无序集合(集合) NSDic ...

  8. Ubuntu Bochs boot.asm 测试

    /********************************************************************* * Ubuntu Bochs boot.asm 测试 * ...

  9. KMP算法在字符串中的应用

    KMP算法是处理字符串匹配的一种高效算法 它首先用O(m)的时间对模板进行预处理,然后用O(n)的时间完成匹配.从渐进的意义上说,这样时间复杂度已经是最好的了,需要O(m+n)时间.对KMP的学习可以 ...

  10. win7下IIS7.0虚拟目录不存在的问题

    问题:在IIS7.0下选中虚拟目录,右边浏览应用程序下,自动打开浏览器找开虚拟目录下的网站,但过一会什么都没有改变,再一次右边浏览应用程序,就提示 “虚拟目录不存在”. 解决方法:右键网站或下面的虚拟 ...