Java 在SpringMVC中,表单提交后,遇到PropertyNotFoundException

Java 在SpringMVC中,表单提交后,遇到PropertyNotFoundException,java,spring-mvc,Java,Spring Mvc,这是控制器 @Controller @RequestMapping("/Register") public class RegistrationController { @RequestMapping(method=RequestMethod.GET) public String showForm(ModelMap model) { System.out.println("..In showform().."); UserBean use

这是控制器

@Controller
@RequestMapping("/Register")
public class RegistrationController {

    @RequestMapping(method=RequestMethod.GET)
    public String showForm(ModelMap model)
    {
        System.out.println("..In showform()..");
        UserBean userbean=new UserBean();
        model.addAttribute("USER", userbean);
        return "Test";
    }
    @RequestMapping(value="/Register" ,method=RequestMethod.POST)
    public String processForm(@ModelAttribute("USER") UserBean user)
    {   
            System.out.println("UserDetails are :"+ user.getFirstName());
            System.out.println("UserDetails are :"+ user.getAge());
            return "Success";
    }

}
这是Test.jsp

<form:form method="POST" modelAttribute="USER"  action="Register">
<table>

<tr><td>Name</td> <td><form:input path="FirstName"/></td></tr>
<tr><td>Age</td> <td><form:input path="Age"/></td></tr>
<tr><td><input type="submit" value="Submit"/></td></tr>
</table>
</form:form>
<body>
    <table>
        <tr>
            <td>User Name :</td>
            <td><core:out value="${USER.FirstName}" /></td>
        </tr>
        <tr>
            <td>Age :</td>
            <td><core:out value="${USER.Age}" /></td>
        </tr>
    </table>
</body>
现在,在我点击提交按钮后,遇到了以下错误。不知道为什么。我在backingbean中有适当的getter/setter

javax.el.PropertyNotFoundException: Property 'FirstName' not found on type com.beans.UserBean

getter方法
public String getFirstName()
对于名为:
firstName
的实例变量是等效的,而不是
firstName

由于以小写字母开头的变量是a,Spring MVC将搜索名为:
firstName,age
NOT
firstName,age
的实例变量。 Spring抛出异常:
javax.el.PropertyNotFoundException
,因为他找不到
FirstName
Age
的任何异常

您所要做的就是更改这些实例变量的名称,以便它们可以以小写字母开头:
firstName,age

    private String FirstName;

    private int Age;

这确实是一个糟糕的做法,用小写字母定义变量中的第一个字符。请使用小写字母,然后重试。

将属性重命名为
firstName
,并使用较低的f。由于命名约定,请重试(也在jsp中)

使用较低的
f
将属性重命名为
firstName
。由于命名约定,请重试(也在jsp中)嗨,Daniel。谢谢。我真傻,但解释还是很好。尝试学习SpringMVC。所以,我想我们会经常讨论。没问题,如果我听起来有点直言不讳的话,对不起:)干杯
    private String FirstName;

    private int Age;