不使用Spring Taglib进行数据绑定


问题内容

我的html是在不使用spring taglib的情况下构建的,现在我想将表单的参数绑定到控制器中的对象。

目前我的表格看起来像这样

<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
}

我该如何绑定它。目前,绑定尚未发生。我只是在代码中得到一个空对象。


问题答案:

您可以尝试BindingResult在方法签名中包括该类,然后查看是否存在任何绑定错误:

@RequestMapping("login")
Public ModelAndView doLogin(FrAccUserMgmt frAccUserMgmt, BindingResult result) {
    if (result.hasErrors()) {
        logger.warn("BindingResult errors: " + result.toString());
    }
    //code
}

frAccUserMgmt从表单字段名称中删除零件。Spring将基于命令对象中定义的getter和setters自动找到命令对象以绑定请求参数。