Request method 'POST' not supported в Spring MVC

121
25 января 2020, 16:30

Помогите пожалуйста решить проблему

jsp

    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
        <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
         <title>Title</title>
    </head>
<body>
    <c:if test="${currentRoom.getLight()}">
        <form method="post" action="/room/allroom/">
            <input type="radio" name="status" value="turnOff">
            <button type="submit">Выключить</button>
        </form>
    </c:if>
    <c:if test="${!currentRoom.getLight()}">
        <form method="post" action="/room/allroom/">
            <input type="radio" name="status" value="turnOn">
            <button type="submit">Включить</button>
        </form>
    </c:if>
</body>

Controller

@Controller
@RequestMapping(path = "/room")
public class RoomController {
@GetMapping(path = "allroom/{roomNumber}")
    public ModelAndView getRoomById(@PathVariable("roomNumber") Integer roomNumber, ModelAndView modelAndView, HttpServletRequest httpServletRequest){
        modelAndView.setViewName("currentRoom");
        List<Room> roomList = roomService.allListRooms();
        Room room = roomList.get(roomNumber);
        httpServletRequest.getSession().setAttribute("currentRoom", room);
        return modelAndView;
    }
    @PostMapping(path = "allroom/{roomNumber}")
    public ModelAndView light(@PathVariable("roomNumber") Integer roomNumber, @RequestParam("status") String status, ModelAndView modelAndView, HttpServletRequest httpServletRequest){
        modelAndView.setViewName("currentRoom");
        if(status.equals("turnOn")){
            roomService.lightOn(roomNumber);
            return modelAndView;
        }
        if(status.equals("turnOff")){
            roomService.lightOff(roomNumber);
            return modelAndView;
        }
        return modelAndView;
    }

Ошибка: Message Request method 'POST' not supported

Description The method received in the request-line is known by the origin server but not supported by the target resource.

Answer 1

Вы сабмитите по ссылке action="/room/allroom/", хотя замепили две "/room/allroom/{roomNumber}"

Добавьте число к ссылке. Чтобы запрос отправлялся на "/room/allroom/1" скажем. Либо уберите {roomNumber} из контроллера

READ ALSO
Java чтение и запись в файл

Java чтение и запись в файл

При написание программы по распознаванию рукописного текста :

137
Мониторинг хоста

Мониторинг хоста

Пожалуйста подскажите! Как можно реализовать в приложении для Android пинг какого либо url и вывести информацию о его состоянииНапример:пишем...

153
Как подать два параметра на вход метода main String args[]?

Как подать два параметра на вход метода main String args[]?

Первый - path - путь к директории, второй - resultFileAbsolutePath - имя (полный путь) существующего файла

105
Могу ли я в конструкторе делать вычисления?

Могу ли я в конструкторе делать вычисления?

У меня есть класс Figure, который описывает площадь и периметрУ меня есть также множество фигур, унаследованных от этого класса

127