Как передать скрытое значение в форме в Spring MVC 3.0? - PullRequest
11 голосов
/ 17 марта 2011

Как передать скрытое значение в форме в Spring MVC 3.0

Я не могу присвоить значение скрытому полю, используя <form:hidden path="test" />.Как я могу установить значение тестового поля и получить доступ к нему на стороне сервера.

спасибо

Ответы [ 3 ]

3 голосов
/ 22 сентября 2014
<form:hidden path="test"  style="display:none"/>
0 голосов
/ 14 марта 2013

Облибует, что кроме скрытого тега у вас также есть такая форма:

<%@ 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, так что вы можете просто использовать его как компонент! Также не забудьте добавить сеттер и геттер в ваше секретное свойство.

<%--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

ОБНОВЛЕНО: Этот пример работает нестабильно . Я знаю почему, но иногда это устанавливает свойство, где-то нет. Если у вас есть две пружинные формы в одном jsp, этот подход может установить свойство для первого, а не установить для второго или наоборот. Может быть потому, что jsp: setProperty работает после тега Spring форм, может быть нет.

0 голосов
/ 02 июня 2011

Часто люди ошибочно передают некоторые значения как скрытые в форму, потому что они не могут иначе установить эти поля при обновлении предыдущих значений.Например, если я не передам некоторые значения при обновлении формы, эти поля станут пустыми.Однако это неверный способ обновления значений.Для этого есть

@ SessionAttributes ("Правила")

.После обновления вы можете настроить завершение сеанса, используя параметр (SessionStatus status) и status.setComplete () после завершения обновления.Если вы хотите получить значения, которых нет в модели, вы всегда можете использовать request.getParameter ("yourinputname");Вы можете использовать

input type = "hidden"

, чтобы установить некоторые значения, если вы хотите использовать в некоторых частях, таких как javascript (при использовании

$ {somevalueIdontwanttoshow}

не работает).

А если вы действительно хотите получить доступ к скрытому файлу, попробуйте использовать запрос

.getParameter ("yourfiedl")

перед просмотром ошибок привязки.

...