Как передать скрытое значение в форме в Spring MVC 3.0
Я не могу присвоить значение скрытому полю, используя
<form:hidden path="test" />
. Как установить значение тестового поля и получить доступ к нему на стороне сервера.
спасибо
Как передать скрытое значение в форме в Spring MVC 3.0
Я не могу присвоить значение скрытому полю, используя
<form:hidden path="test" />
. Как установить значение тестового поля и получить доступ к нему на стороне сервера.
спасибо
<form:hidden path="test" style="display:none"/>
Это означает, что помимо скрытого тега у вас также есть такая форма:
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<form:form action="/someAction" commandName="formBeanName" method="post">]
<%--
there you set needed properties
--%>
<form:hidden path="test" />
</form:form>
Обратите внимание, что "formBeanName" - это имя атрибута класса java, которое хранилось в HttpServletRequest, поэтому вы можете просто использовать его как bean! Также не забудьте добавить setter и getter к вашему секретному свойству.
<%--Set you secret property there--%>
<jsp:setProperty name="formBeanName" property="test" value="sercret"/>
<form:form action="/someAction" commandName="formBeanName" method="post">]
<%--
there you set needed properties
--%>
<form:hidden path="test" />
</form:form>
public class FormBean {
//other fileds
private String test;
public String getTest(){
return this.test;
}
public String setTest(Strign test){
return this.test = test;
}
}
P.S. Я тестировал это с помощью Spring 3.1
ОБНОВЛЕНО: В этом примере работает нестабильно. Я знаю почему, но иногда он устанавливает свойство, где-то нет. Если у вас две формы Spring в одном jsp, этот подход может установить свойство для первого и не установить для второго или наоборот. Может быть, потому, что jsp: setProperty работает после тега форм Spring, может и не быть.
Часто люди ошибочно передают некоторые значения как скрытые для формы, потому что они не могут иначе устанавливать эти поля в обновлении до предыдущих значений. Например, если я не передаю некоторые значения при обновлении формы, эти поля становятся нулевыми. Однако это неправильный способ обновления значений. Существует
@SessionAttributes ( "Правила" )
чтобы сделать это. После обновления вы можете настроить сеанс для завершения использования (состояние состояния SessionStatus) и status.setComplete() после завершения обновления. Если вы хотите получить некоторые значения, которых нет в модели, вы всегда можете использовать request.getParameter( "yourinputname" ); Вы можете использовать
Тип ввода = "скрытый"
чтобы установить некоторые значения, если вы хотите использовать в некоторых частях, таких как javascript (при использовании
${somevalueIdontwanttoshow}
не работает).
И если вы действительно хотите получить доступ к скрытой поданной попытке, используя
request.getParameter( "yourfiedl" )
прежде чем искать ошибки привязки.