处理HttpServletRequest 请求参数与参数转换为实体类
2017-11-16 11:11
1311 查看
此文是自己作记录用,适用于新手参考。资深程序员请绕道
当前端传递大批量参数时,后端需要进行获取参数与赋值给对应实体类 (当然这种情况为 前端传递的 参数名 与 实体类中的参数名称不相同。如果传递的参数名与实体类参数相同,由于SpringMCV的特性,则Controller层的对应的方法,直接用 实体类去接收,会自行赋值)
代码如下 :
再一个例子,传递的参数名如果与实体类的参数名相同,则直接用实体类接收。如下 User Info 为实体类,里面有参数 userName,sex ,age 等参数,那么前端页面则也传递这些参数名称,则会自动赋值。
当前端传递大批量参数时,后端需要进行获取参数与赋值给对应实体类 (当然这种情况为 前端传递的 参数名 与 实体类中的参数名称不相同。如果传递的参数名与实体类参数相同,由于SpringMCV的特性,则Controller层的对应的方法,直接用 实体类去接收,会自行赋值)
代码如下 :
import net.sf.json.JSONObject; import org.apache.commons.beanutils.BeanUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; /** * Created by huyong on 2016/6/16. */ public class RequestUtil { private static final Logger LOGGER = LoggerFactory.getLogger(RequestUtil.class); private RequestUtil() {} /** * request的全部参数转换成map * @param request * @return */ @SuppressWarnings("unchecked") public static Map<String, String[]> getMap(HttpServletRequest request){ return request.getParameterMap(); } /** * request的部分参数转换成map: * 根据的keys指定的的Key从request取出值放到Map中 * @param request * @param keys 需要转的key,多个key用豆号隔开 * @return */ public static Map<String,Object> getMap(HttpServletRequest request, String keys){ String[] split = keys.split(","); Map<String,Object> map = new HashMap<String, Object>(split.length); for (String key : split) { map.put(key, request.getParameter(key)); } return map; } /** * 解析JSONObject对象转换为 map * @param keys * @param MainJsonObj * @return */ public static Map<String,Object> getMap(String keys,JSONObject MainJsonObj){ String[] split = keys.split(","); Map<String,Object> map = new HashMap<String, Object>(split.length); for(String key:split){ map.put(key,MainJsonObj.getString(key)); } return map; } /** * 将map转换成bean对象: * 根据Map的keyValues创建Bean对象 * @param theClass * @param keyValues * @return */ public static <T> T getBean(Class<T> theClass,Map<String,Object> keyValues){ T bean = null; try { bean = theClass.newInstance(); BeanUtils.populate(bean, keyValues); } catch (Exception e) { LOGGER.error("map转换成bean对象出错", e); } return bean; } }
再一个例子,传递的参数名如果与实体类的参数名相同,则直接用实体类接收。如下 User Info 为实体类,里面有参数 userName,sex ,age 等参数,那么前端页面则也传递这些参数名称,则会自动赋值。
/** * 保存用户信息 * @return */ @RequestMapping("/save") @ResponseBody public Result save(UserInfo userInfo){ Map<String,Object> map = Maps.newConcurrentMap(); return successResponse(map); }
相关文章推荐
- HttpServletRequest获取请求参数
- HttpServletRequestWrapper采用装饰模式重新封装request,并打印request请求相关参数。
- springmvc中随时获得request(这种情况在为文件MultipartHttpServletRequest的请求下可以获得参数)
- 如何使用Ajax(XMLHttpRequest)发送带参数的请求,以及如何在Servlet中获取请求中的参数
- HttpServletRequest请求参数注意事项
- 获取HttpServletRequest请求参数的工具类
- HTTP AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- [Servlet]HttpServletRequest的请求参数、标头、编码
- 将HttpServletRequest中的参数反射至实体类
- 如何遍历HttpServletRequest获取请求参数
- 在servlet中GET请求可以通过HttpServletRequest的getRequestURL方法和getQueryString()得到完整的请求路径和请求所有参数列表,POST的需要getPa
- Http请求和HttpServletRequest中获得对应参数的方法
- HttpServletRequest getXXX 获取参数、请求uri url、全路径
- httpServletRequest对象获取请求参数
- 在servlet中GET请求可以通过HttpServletRequest的getRequestURL方法和getQueryString()得到完整的请求路径和请求所有参数列表,POST的需要getPa
- Struts2 HttpServletRequest获取请求参数的过程
- Tomcat如何解析URL的请求参数(追踪HttpServletRequest对于请求参数的解析过程)
- HttpServletRequest获取请求参数
- (10A)HttpServletRequest:获取客户机信息、获取消息头信息、获取客户机请求参数、请求转发forward
- HttpServletRequest接收参数并转化为类