Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Há algum problema em passar um parâmetro na URL para o método Post?

Olá pessoal.

Eu ainda não entendi uma coisa. Temos o seguinte código:

    <form action="${linkEntradaServlet }" method="post">

        Nome: <input type="text" name="nome" value="${empresa.nome }" />
        Data Abertura: <input type="text" name="data"  value="<fmt:formatDate value="${empresa.dataAbertura }" pattern="dd/MM/yyyy"/>" />
        <input type="hidden" name="id" value="${empresa.id }">
        <input type="hidden" name="acao" value="AlteraEmpresa">
        <input type="submit" />
    </form>

O ID e a ação estão sendo passadas no corpo do form, com o método Post. Em algum momento desse curso o instrutor diz que ele poderia passar a ação ou id na URL, por exemplo:

<c:url value="/entrada?acao=novaEmpresa" var="linkServletNovaEmpresa"/>

Aqui estamos passando a ação como patch parameter. Em relação ao método post, como por exemplo boas práticas, ou até mesmo sobre problemas que podem ocasionar, eu posso enviar uma requisição POST com os seus devidos parâmetros de requisição e também um patch parameter na URL? Método Post não deve somente mandar parâmetros no corpo?

Muito obrigado.

1 resposta
solução!

Semanticamente, o corpo da solicitação deve conter os dados que você está postando.

O query param, como parte da URL está lá para identificar qual recurso você está postando.

Exemplo: aplicativo que define waypoints em um mapa:

POST /map/route/45/waypoints?lat=35&long=74

Nesse caso, os parâmetros fazem mais sentido no URI como identificadores de um local, do que apenas parâmetros sendo passados ​​no corpo para o recurso.