Spring:以编程方式绑定请求中的对象

时间:2014-07-25 15:49:23

标签: java spring spring-mvc

有没有办法以编程方式将表单数据绑定到知道类类型的对象?我以为会有像

这样的东西
T instance = something.pleaseDoSomeMagicBind(class, request)
在某个地方或类似的地方,但到目前为止我没有运气。

谢谢

2 个答案:

答案 0 :(得分:8)

感谢Sotirios(你拯救了我的理智)的暗示,我已经能够实现我一直在寻找的东西,如果其他人有兴趣,我将离开这里我的发现

final WebDataBinder binder = new WebDataBinder(BeanUtils.instantiate(clazz));
ServletRequestParameterPropertyValues values = new ServletRequestParameterPropertyValues(request);
binder.bind(values);
final BindingResult result = binder.getBindingResult();

答案 1 :(得分:1)

Spring通过将请求参数映射到基于匹配名称的处理程序方法参数类型的实例字段来绑定表单数据。

.../asd?someValue=123

将绑定到

的实例
public class Backing {
    private String someValue;
    //getters and setters
}

假设您有一个像

这样的请求处理程序
@RequestMapping
public String handle(Backing backing) {
     return backing.getSomeValue(); // "123"
}

没有像你所描述的那样存在。