我的html是在没有使用spring标记库的情况下构建的,现在我想将表单的参数绑定到控制器中的一个对象上。
目前,我的表单如下所示
<form>
<input type="text" name="frAccUserMgmt.userName"/>
<input type="password" name="frAccUserMgmt.userPwd"/>
</form>我的对象的相关部分是
Class FrAccUserMgmt {
    private String userName;
    private Strint userPwd;
    // getter and setter
}我的控制器是
@RequestMapping("login")
Public ModelAndView doLogin(FrAccUserMgmt frAccUserMgmt) {
    //code
}我该如何绑定它。目前,绑定还没有发生。我只是在我的代码中得到一个空对象。
发布于 2012-07-23 11:40:10
您可以尝试在方法签名中包含BindingResult类,然后查看是否存在任何绑定错误:
@RequestMapping("login")
Public ModelAndView doLogin(FrAccUserMgmt frAccUserMgmt, BindingResult result) {
    if (result.hasErrors()) {
        logger.warn("BindingResult errors: " + result.toString());
    }
    //code
}从表单域名称中删除frAccUserMgmt部件。Spring将根据命令对象中定义的getter和setter自动找到绑定请求参数的命令对象。
发布于 2014-05-09 01:47:38
这也可以通过为应该用请求参数填充的参数bean添加@ModelAttribute来完成。
根据spring文档
http://docs.spring.io/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-ann-modelattrib-method-args (16.3.3.8在方法参数上使用@ModelAttribute )
方法参数上的@ModelAttribute指示应从模型中检索参数。如果模型中不存在该参数,则应首先实例化该参数,然后将其添加到模型中。一旦出现在模型中,参数的字段就应该由具有匹配名称的所有请求参数填充。这在Spring MVC中称为数据绑定,这是一种非常有用的机制,使您不必逐个解析每个表单字段。
https://stackoverflow.com/questions/11603619
复制相似问题