如何在Spring MVC 3.0中传递表单中的隐藏值
我无法使用隐藏字段为其分配值
<form:hidden path="test" />
。如何设置测试字段的值并在服务器端访问它。
感谢
答案 0 :(得分:3)
<form:hidden path="test" style="display:none"/>
答案 1 :(得分:0)
除了隐藏标签之外,你还有一个像这样的表格:
<%@ 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进行了测试
更新:此示例有效不稳定。我知道为什么,但有时它会设置属性,某些地方没有。如果在一个jsp中有两个弹簧形式,则此方法可以先设置属性,而不设置为第二个,反之亦然。可能是因为jsp:setProperty在spring form tag之后工作,可能不是。
答案 2 :(得分:-1)
通常人们错误地将某些值传递给隐藏形式,因为他们不能将这些字段设置为更新为先前的值。例如,如果我在更新表单时没有传递某些值,那么这些字段将变为空。但是,这是更新值的错误方法。有
@SessionAttributes( “规则”)
这样做。更新后,您可以在更新完成后使用(SessionStatus status)参数和status.setComplete()将会话设置为完成。如果你想获得一些不在模型中的值,你总是可以使用request.getParameter(“yourinputname”);你可以使用
输入类型=“隐藏”
如果你想在某些部分使用像javascript(如果使用
)那么设置一些值$ {somevalueIdontwanttoshow}
不起作用。)
如果您真的想访问隐藏的文件,请尝试使用
的request.getParameter( “yourfiedl”)
在查看绑定错误之前。