错误:根据TLD,标签形式:输入必须为空,但不是

时间:2013-05-29 18:00:55

标签: java forms spring jsp spring-mvc

我有一个春天的mvc表格

<form:form action="${actionUrl}" method="post" commandName="userAccountVO">
<form:input type="text" path="userName" value="${user.userName}"></input>
//other similar fields
<input type="submit" id="save_changes_button" value="" />
</form:form>

在返回视图的控制器中,我有这段代码

 model.addAttribute(user, userAccountVO);
 model.addAttribute("userAccountVO", new UserAccountVO());
 return "view";

但是我得到了上面提到的错误如果我在输入标签中添加了一些值,就像这样

 <form:input type="text" path="userName" value="${user.userName}">some text</input>

另外,如果我尝试提交表单,那么模型属性对象中的所有字段都为空。

  @RequestMapping(value = "/updateuser", method = RequestMethod.POST)
public @ResponseBody
GenericResponse updateUserAccount(
        @ModelAttribute("userAccountVO") UserAccountVO userAccountVO,
        BindingResult result) {
 //userAccountVO here is null, i guess it creates a new object
}

This帖子说这是因为我没有表格支持对象,但我确实有。

可能是什么问题?提前谢谢。

4 个答案:

答案 0 :(得分:2)

明显的建议。取代

<form:input type="text" path="userName" value="${user.userName}"></input>

通过

<form:input path="userName"/>

答案 1 :(得分:1)

表单的

commandName 属性以弹簧形式将所有自动值绑定到模态对象,使用 path ,您将获得模态对象的相应属性的值。

答案 2 :(得分:0)

您的格式错误,应将其更改为:

<form:input type="text" path="userName" value="${user.userName}"/>

答案 3 :(得分:-1)

您不应在标签之间提供任何空格,字符或换行符,然后它不会发出此警告消息。