在不使用弹簧的taglib数据绑定(Data binding without using sprin

2019-07-30 12:56发布

我的HTML是建立在不使用弹簧的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
}

我怎么去结合它。 目前,结合不会发生。 我刚刚得到一个空物体在我的代码。

Answer 1:

你可以尝试包括BindingResult方法签名类,然后看看是否有任何约束力的错误:

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

取出frAccUserMgmt部分从表单字段名。 弹簧会自动找到命令对象绑定基于在命令对象中定义的getter和setter请求参数。



Answer 2:

这也可以通过添加@ModelAttribute的参数豆应与请求参数填充完成。

由于每春天文档

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,那您就不必逐一分析每个表单字段一个非常有用的机制结合。



文章来源: Data binding without using spring taglib