#spring-boot
#весенняя загрузка
Вопрос:
ПОЧТАЛЬОН :
{
"childDTO":[{
"age":"80",
"gender":"kavi",
"occupation":"main",
"type":"mainlife"
},
{ "age":"80",
"gender":"kavi",
"occupation":"main",
"type":"mainlife"
}
]
}
Контроллер…..
@PostMapping("/child")
public List<CustomerDTO> childDTO(@RequestBody CustomerDTO cus){
return calculationService.childDTO(cus.getAge(),cus.getGender(),cus.getOccupation(),cus.getType());
}
Обслуживание……
public List<CustomerDTO> childDTO(String age, String gender, String occupation, String type);
Реализация сервиса……
@Override
public List<CustomerDTO> childDTO(String age, String gender, String occupation, String type) {
List<CustomerDTO> typeChild = new ArrayList<>();
if (type==children) {
for (CustomerDTO customer1 : typeChild) {
customer1.setAge(age);
customer1.setGender(gender);
customer1.setOccupation(occupation);
customer1.setType(type);
customer1.setBenifits(benifitDTO(beni.getRiders(), beni.getSumAssuarance()));
System.out.println("list:-" customer1);
typeChild.add(customer1);
}
}
System.out.println("list:-" typeChild);
return typeChild;
}
Комментарии:
1. Не могли бы вы, пожалуйста, опубликовать код
CustomerDTO
? и какое значение будут иметь дочерние элементы!2. возраст частной строки; пол частной строки; занятие частной строки; тип частной строки; частные преимущества, которые нужно использовать;
3. Поэтому я думаю, что ваш запрос post никогда не будет получен, поскольку вы передаете данные массива и в
@RequestBody
вы пытаетесь получить данные в одном объекте!4. контроллер:-CustomerDTO [возраст =null, пол = null, профессия = null, тип = null, преимущества = null]
5. данные запроса post не назначаются в контроллере
Ответ №1:
Вы не опубликовали, что это за переменная children
, возможно, какое-то поле класса, но вы не можете сравнивать строки Java с ==
. Строки Java должны сравниваться с .equals
:
...
if (type.equals(children)) {
...
В следующий раз используйте отладчик, чтобы посмотреть, что происходит в вашем коде.
Ответ №2:
Ваш запрос и структура RequestBody контроллера не совпадают. Вам нужно использовать List.
@PostMapping("/child")
public List<CustomerDTO> childDTO(@RequestBody List<CustomerDTO> cusList){ // here list needs to be used
if(cusList != null amp;amp; !cusList.isEmpty()) {
CustomerDTO cus = cusList.get(0); // it will get first element from the list, if you want to process all the elements then you need to iterate the list
return calculationService.childDTO(cus.getAge(),cus.getGender(),cus.getOccupation(),cus.getType());
}
}
Теперь будет другая логика, или вы можете изменить ее в соответствии с вашими требованиями.