Добрый день. Перечитал документацию, гуглил, не нашел в чем проблема.
1. Создаю класс
public class Person {
private int age;
public Person(int age)
{
this.age = age;
}
@Override
public String toString()
{
return String.valueOf(this.age);
}
}
2. Создаю форму
<form method="post">
<input type="number" name="age"/>
<input type="submit"/>
</form>
3. Создаю обработчик формы
@Controller
@RequestMapping("/")
public class MainController {
@PostMapping
public String getForm(Person person)
{
System.out.println(person);
return "index";
}
}
При вводе числовых данных в поле выдает исключение:
java.lang.IllegalStateException: Cannot resolve parameter names for constructor public mainPackage.Person(int)
При этом, если создать в классе сеттеры и создать конструктор по умолчанию (т.е. без параметров), то всё работает, т.е. привязка идет через сеттеры.
Но вопрос в другом: почему не работает привязка через конструктор?