Как я могу вернуть тело ответа с Spring Rest MVC, когда мне нужно также вернуть веб-страницу для процесса MVC? - PullRequest
0 голосов
/ 16 ноября 2018

Это мой Кодекс, я знаю, что я не должен делать 2 заявления о возврате, но только для объяснения своей проблемы. Спасибо

@PostMapping
@ResponseStatus(HttpStatus.Created)
public String addStudent(@RequestBody Student student){
    return StudentRep.save(Student);// Should be PayLoad Client Response
    return “Student”; // Should be redirect to Student.html

}

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Я думаю, что я нашел решение моего ответа.Я должен аннотировать контроллер, содержащий мой метод, с помощью @ RestController вместо @ Controller .Итак, ответ автоматически вернет ответ JSON HTTP .

0 голосов
/ 16 ноября 2018

Вам не нужно возвращать ResponseBody.Вы можете просто добавить атрибуты к своей модели и затем использовать их в своих представлениях.

@PostMapping
@ResponseStatus(HttpStatus.Created)
public String addStudent(@RequestBody Student student, Model model){
    String id = StudentRep.save(Student);// Should be PayLoad Client Response
    model.addAttribute("studentId", id);
    // Will redirect to Student.html where you can use the id attribute.
    return “Student”; 
}

Теперь, если вы использовали Thymeleaf, вы можете использовать этот новый атрибут в любом месте в своем шаблоне.Я не уверен, как вы создаете свои шаблоны, поэтому я просто использовал Thymeleaf в качестве примера.

<p th:text=${id}></p>

Теперь, если вы хотите вернуть объект Stundet, вам понадобятся следующие изменения в вашемконтроллер.

@PostMapping
@ResponseStatus(HttpStatus.Created)
public String addStudent(@RequestBody Student student, Model model){
    StudentRep.save(Student);// Should be PayLoad Client Response
    model.addAttribute("student", student);
    // Will redirect to Student.html where you can use the student attribute.
    return “Student”; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...