Как отправить форму POST на showMessage.jsp
с помощью тега <a href="...">
?
<form action="showMessage.jsp" method="post">
<a href="showMessage.jsp"><%=n%></a>
<input type="hidden" name="mess" value=<%=n%>/>
</form>
Как отправить форму POST на showMessage.jsp
с помощью тега <a href="...">
?
<form action="showMessage.jsp" method="post">
<a href="showMessage.jsp"><%=n%></a>
<input type="hidden" name="mess" value=<%=n%>/>
</form>
Нет необходимости в JavaScript, если вы используете кнопку:
<form action="your_url" method="post">
<button type="submit" name="your_name" value="your_value" class="btn-link">Go</button>
</form>
Вы можете стиль кнопки, чтобы выглядеть как ссылка, например:
.btn-link{
border:none;
outline:none;
background:none;
cursor:pointer;
color:#0000EE;
padding:0;
text-decoration:underline;
font-family:inherit;
font-size:inherit;
}
Вам нужно использовать функцию Javascript submit
на вашем объекте form
. Посмотрите в других функциях.
<form action="showMessage.jsp" method="post">
<a href="javascript:;" onclick="parentNode.submit();"><%=n%></a>
<input type="hidden" name="mess" value=<%=n%>/>
</form>
Для этого вам нужно использовать javascript.
<form id="form1" action="showMessage.jsp" method="post">
<a href="javascript:;" onclick="document.getElementById('form1').submit();"><%=n%></a>
<input type="hidden" name="mess" value=<%=n%>/>
</form>
Если вы используете MVC для его выполнения, вам нужно будет сделать что-то вроде этого
<form action="/ControllerName/ActionName" method="post">
<a href="javascript:;" onclick="parentNode.submit();"><%=n%></a>
<input type="hidden" name="mess" value=<%=n%>/>
</form>
Я просто просмотрел несколько примеров здесь и не видел, что MVC решил, что это не помешает опубликовать его.
Затем в вашем Action в контроллере я просто положил <HTTPPost>
Наверху.
Я верю, что если у вас нет <HTTPGET>
, то он все равно будет работать, но явно помещать его там немного лучше.
На самом деле не существует способа обмануть <a href= ..
в методе POST. Однако, учитывая, что у вас есть доступ к CSS страницы, это можно заменить, используя форму.
К сожалению, очевидный способ простого стиля кнопки в CSS в качестве привязывающего тега не совместим с кросс-браузером, так как разные браузеры относятся к <button value= ...
по-разному.
Incorrect:
<form action='actbusy.php' method='post'>
<button type='submit' name='parameter' value='One'>Two</button>
</form>
В приведенном выше примере будет отображаться параметр "Два" и "Передача": один "в FireFox, в то время как он отобразит" Один "и передаст также" параметр: один "в IE8.
Способом является использование скрытых полей ввода для доставки данных и кнопки для его отправки.
<form action='actbusy.php' method='post'>
<input class=hidden name='parameter' value='blaah'>
<button type='submit' name='delete' value='Delete'>Delete</button>
</form>
Обратите внимание, что этот метод имеет побочный эффект, который помимо параметра: blaah также будет доставлять "delete: Delete" в качестве избыточных параметров в POST.
Вы хотите сохранить для кнопки атрибут value и метку кнопки между тегами одинаковыми ( "Удалить" в этом случае), поскольку (как указано выше) некоторые браузеры будут отображать один, а некоторые отображают другой как ярлык кнопки.