Spring Mvc 控制器获取端点未重定向



您好,我在Controller课上遇到了一些麻烦。所有请求都工作正常,除了这个请求,由于某种原因拒绝将我重定向到另一个页面,即使据我所知一切都很好。 这是我的控制器类。 问题出在beginReservation终结点上

package movie_manager.web.presentation;
import movie_manager.model.dto.MovieDto;
import movie_manager.model.dto.ReservationDto;
import movie_manager.model.dto.UserDto;
import movie_manager.model.pojo.FormPojo;
import movie_manager.model.pojo.ReservationPojo;
import movie_manager.service.MovieService;
import movie_manager.service.ReservationService;
import movie_manager.service.UserService;
import movie_manager.web.session.SessionInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.validation.Valid;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private SessionInfo sessionInfo;
@Autowired
private UserService userService;
@Autowired
private MovieService movieService;
@Autowired
private ReservationService reservationService;
@GetMapping
public ModelAndView userPage(){
ModelAndView modelAndView = new ModelAndView("user");
Collection<MovieDto> movies = movieService.getAll();
modelAndView.addObject("movies", movies);
return modelAndView;
}
@GetMapping("view_movie/{movieId}")
public ModelAndView viewMovie(@Valid @PathVariable long movieId){
ModelAndView modelAndView = new ModelAndView("view_movie");
modelAndView.addObject("movie", movieService.get(movieId));
return modelAndView;
}
@PostMapping("/make_reservation")
public void makeReservation(@Valid @RequestBody FormPojo formPojo){
MovieDto movieDto = movieService.get(formPojo.movieId);
UserDto userDto = sessionInfo.getUser();
ReservationDto reservationDto = new ReservationDto();
reservationDto.movieDto = movieDto;
reservationDto.userDto = userDto;
reservationDto.userName = formPojo.userName;
reservationService.add(reservationDto);
}
@GetMapping("/begin_reservation")
public ModelAndView beginReservation(@Valid @RequestBody ReservationPojo reservationPojo) {
ModelAndView modelAndView = new ModelAndView("reservation");
MovieDto movieDto = movieService.get(reservationPojo.movieId);
if(movieDto.availableSeats < reservationPojo.numberOfSeats)
return new ModelAndView("notEnoughSeats");
modelAndView.addObject("movie", movieDto);
List<Integer> list = new ArrayList<>();
for (int i = 0; i< reservationPojo.numberOfSeats;i++){
list.add(i);
}
modelAndView.addObject("numberOfForms", list);
return modelAndView;
}
}

所有其他端点都可以正常工作。并且成功到达有问题的端点。问题似乎出在ModelAndView对象上。页面只是保持静态没有错误没有任何东西。我还要指出,似乎没有路径有效(即使是上面在其他端点中使用的路径(。 任何帮助将不胜感激。

>@RestController不用于返回要解析的视图。它应该返回将写入响应正文的数据,因此包含@ResponseBody。当单个处理程序方法已在类级别进行批注时@ResponseBody不能有选择地禁用@ResponseBody

原始答案在这里 从春季 MVC 返回视图 @RestController.

最新更新