HttpServletRequest参数传对象
时间: 2023-07-05 17:34:24 浏览: 92
可以使用Java的反射机制,将HttpServletRequest对象中的参数映射成对象的属性。具体的实现步骤如下:
1. 定义要映射的对象,对象的属性需要与HttpServletRequest对象中的参数名称一致。
```java
public class User {
private String name;
private int age;
// 省略setter和getter方法
}
```
2. 获取HttpServletRequest对象中的参数,并通过反射机制将参数映射到对象的属性中。
```java
public User map(HttpServletRequest request) {
User user = new User();
Map<String, String[]> parameterMap = request.getParameterMap();
try {
for (String parameterName : parameterMap.keySet()) {
Field field = User.class.getDeclaredField(parameterName);
field.setAccessible(true);
String[] parameterValues = parameterMap.get(parameterName);
if (parameterValues != null && parameterValues.length > 0) {
String parameterValue = parameterValues[0];
field.set(user, parameterValue);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return user;
}
```
3. 在Controller中调用map方法,获取映射后的对象。
```java
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String addUser(HttpServletRequest request) {
User user = new User().map(request);
// 保存用户信息
return "success";
}
```
需要注意的是,如果HttpServletRequest对象中的参数名称与对象的属性名称不一致,可以在map方法中添加一些特殊处理逻辑,来进行参数与属性的映射。
阅读全文