Spring Mvc Контроллер Get Endpoint не перенаправляет - PullRequest
1 голос
/ 09 февраля 2020

Здравствуйте, у меня возникли проблемы в классе Controller. Все запросы работают нормально, кроме этого, который по какой-то причине отказывается перенаправить меня на другую страницу, хотя я все делаю, насколько я знаю. Вот мой класс 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;
    }
}

Все остальные конечные точки работают нормально. И проблемная конечная точка c достигнута успешно. Кажется, проблема в объекте ModelAndView. Страница просто остается прежней c без ошибок нет ничего. Я также хотел бы отметить, что ни один путь не работает (даже те, которые использовались выше в других конечных точках). Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...