параметр запроса:
{
"username": "aaa",
"password": "bbb",
"detail": {
"gender": "ccc",
"location": "ddd"
}
}
и я хочу получить параметр запроса в Spring MVC, используя:
@RequestMapping(value = "/test")
public String test(User user) {
return user.toString();
}
класс User
определяется следующим образом:
@ToString
@NoArgsConstructor
@Data
public class User {
private String username;
private String password;
private Detail detail;
@Data
@NoArgsConstructor
public class Detail {
private String gender;
private String location;
}
}
при отправке запроса я получил ошибку:
Недопустимое свойство 'detail [пол]' класса бина [com.example.demo.param.User]: недопустимая попыткачтобы получить свойство «деталь» выкинуло исключение;вложенным исключением является org.springframework.beans.NullValueInNestedPathException: недопустимое свойство 'detail' класса бина [com.example.demo.param.User]: не удалось создать экземпляр типа свойства [com.example.demo.param.User $ Detail] дляавтоматически расти путь вложенного свойства;Вложенным исключением является java.lang.NoSuchMethodException: com.example.demo.param.User $ Detail. ()
Данные запроса можно увидеть в инструментах разработчика Chrome:
username: aaa
password: bbb
detail[gender]: ccc
detail[location]: ddd
кажется, что деталь [пол] и деталь [местоположение] не могут быть распознаны как подчиненные атрибуты детали
, это хорошо работает, когда я использую аннотацию @RequestBody для получения запроса типа контента: приложение/json.
но как я могу получить параметр запроса в качестве объекта User в этом случае выше?