package org.framework.bean; //~--- non-JDK imports -------------------------------------------------------- import org.framework.util.CastUtil; import org.framework.util.CollectionUtil; import org.framework.util.StringUtil; //~--- JDK imports ------------------------------------------------------------ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 在一个表单中有两类参数 表单参数和文件参数 * 存储HttpServletRequest里面的参数 * Created by lizhaoz on 2015/12/17. */ public class Param { // 表单参数 private List<FormParam> formParamList; // 文件参数 private List<FileParam> fileParamList; /** * Constructs ... * * * @param formParamList */ public Param(List<FormParam> formParamList) { this.formParamList = formParamList; } /** * Constructs ... * * * @param formParamList * @param fileParamList */ public Param(List<FormParam> formParamList, List<FileParam> fileParamList) { this.formParamList = formParamList; this.fileParamList = fileParamList; } /** * 获取请求参数映射 * author:Lizhao * Date:15/12/31 * version:1.0 * * @return */ public Map<String, Object> getFiledMap() { Map<String, Object> fieldMap = new HashMap<String, Object>(); // 判断表单参数列表是否为空 if (CollectionUtil.isNotEmpty(formParamList)) { // 不为空就遍历表单参数列表 for (FormParam formParam : formParamList) { // 得到参数字段名字 String fieldName = formParam.getFieldName(); // 得到参数的值 Object fieldValue = formParam.getFieldValue(); // 判断是否有参数 if (fieldMap.containsKey(fieldName)) { // 使用值+分隔符+值的方式存储 fieldValue = fieldMap.get(fieldName) + StringUtil.SEPARATOR + fieldValue; } fieldMap.put(fieldName, fieldValue); } } return fieldMap; } /** * 获取上传文件映射 * author:Lizhao * Date:15/12/31 * version:1.0 * * @return */ public Map<String, List<FileParam>> getFileMap() { Map<String, List<FileParam>> fileMap = new HashMap<String, List<FileParam>>(); if (CollectionUtil.isNotEmpty(fileParamList)) { for (FileParam fileParam : fileParamList) { String fieldName = fileParam.getFieldName(); List<FileParam> fileParamList; // 文件映射Map是否包含该字段 if (fileMap.containsKey(fieldName)) { fileParamList = fileMap.get(fieldName); } else { fileParamList = new ArrayList<FileParam>(); } fileParamList.add(fileParam); fileMap.put(fieldName, fileParamList); } } return fileMap; } /** * 通过字段名字得到所有上传文件(实现了多文件的上传) * * author:Lizhao * Date:15/12/31 * version:1.0 * * @param filedName * * @return */ public List<FileParam> getFileList(String filedName) { return getFileMap().get(filedName); } /** * 获取单文件 * author:Lizhao * Date:15/12/31 * version:1.0 * * @param filedName * * @return */ public FileParam getFile(String filedName) { List<FileParam> fileParamList = getFileList(filedName); if (CollectionUtil.isNotEmpty(fileParamList) && (fileParamList.size() == 1)) { return fileParamList.get(0); } return null; } /** * 验证参数是否为空 * author:Lizhao * Date:15/12/31 * version:1.0 * * @return */ public boolean isEmpty() { return CollectionUtil.isEmpty(formParamList) && CollectionUtil.isEmpty(fileParamList); } /** * 得到字符串参数 * author:Lizhao * Date:15/12/31 * version:1.0 * * @param name * * @return */ public String getString(String name) { return CastUtil.castString(getFiledMap().get(name)); } /** * 根据参数名获取 double 型参数值 */ public double getDouble(String name) { return CastUtil.castDouble(getFiledMap().get(name)); } /** * 根据参数名获取 long 型参数值 */ public long getLong(String name) { return CastUtil.castLong(getFiledMap().get(name)); } /** * 根据参数名获取 int 型参数值 */ public int getInt(String name) { return CastUtil.castInt(getFiledMap().get(name)); } /** * 根据参数名获取 boolean 型参数值 */ public boolean getBoolean(String name) { return CastUtil.castBoolean(getFiledMap().get(name)); } } //~ Formatted by Jindent --- http://www.jindent.com