Urban
Urban

Reputation: 585

Request method GET not supported when deleting

I have a table for adding one object to another and deleting one object from another.

This is my controller:

@Controller
@RequestMapping("/proj/{pid}/coupling/{r1}")
public class CouplingController {


    @RequestMapping(method = RequestMethod.GET)
    public String getAllCouplings( ){   
        return "riskCoupling";

    }

    @RequestMapping(value = "/{r1}", method = RequestMethod.POST)
    public String saveCoupling( ){
        return "/projects";
    }

    @RequestMapping(value = "/{r2}", method = RequestMethod.DELETE)
    public String removeCoupling(){

        return "/projects";
    }
}

This is my Thymeleaf view

<td>
    <form action = "#" th:action="@{/proj/{pid}/coupling/{r1}/{r2} (pid=${projectID},r1=${r1ID},r2=${r2.id})}" method = "post">
        <input type="submit" name="Couple" value="Couple" class="btn btn-info" />
    </form>
</td>
<td">
    <form action = "#" th:action="@{/proj/{pid}/coupling/{r1}/{r2} (pid=${projectID},r1=${r1ID},r2=${r2.id})}" method = "delete">
        <input type="submit" name="RemoveCoupling" value="RemoveCoupling" class="btn btn-info" />
    </form>
</td>

When I go to the url /proj/{pid}/coupling/{r1} I get the overview so the GET works.

When I press the Couple button it works. So the POST works.

When I press the RemoveCoupling button I get the error:

Request method "Get" not supported.

I really don't know why I get this error.

Upvotes: 2

Views: 2283

Answers (2)

Andreea Craciun
Andreea Craciun

Reputation: 310

Since browsers unfortunately do not support any other verbs than POST and GET in HTML forms, they will just send POST/GET requests instead. This might be the reason why only that one does not work.

See more:

Upvotes: 1

Urban
Urban

Reputation: 585

I fixed this with Thymeleaf - Button click to call http delete method.

Basically putting a hidden field in my form.

Upvotes: 0

Related Questions