如何在 Spring MVC 3.0 中的表单中传递隐藏值?
如何在 Spring MVC 3.0 中的表单中传递隐藏值
我无法使用以下方式将值分配给隐藏字段
。如何设置测试字段的值并在服务器端访问它。
谢谢
How to pass a hidden value in a form in Spring MVC 3.0
I am not able to assign a value to a hidden field using<form:hidden path="test" />
. How can I set the value of the test field and access it on the server side.
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
值得注意的是,除了隐藏标签之外,您还有一个如下所示的表单:
请注意,“formBeanName”是 java 类的属性名称,它存储在 HttpServletRequest 中,因此您可以简单地将其用作 bean!另外,不要忘记将 setter 和 getter 添加到您的秘密属性中。
PS 我用 Spring 3.1 测试了这个
更新:这个示例工作不稳定。我确实知道为什么,但有时它会在某个地方没有设置属性。如果一个 jsp 中有两个 spring 表单,则此方法可以为第一个表单设置属性,而不为第二个表单设置属性,反之亦然。可能是因为 jsp:setProperty 在 spring forms 标签之后工作,也可能不是。
It is oblibiuos that besides a hidden tag you also have a form like this:
Notice that the "formBeanName" is attribute name of java class, that was stored in HttpServletRequest, so you can simple use it as a bean! Also do not forget to add setter and getter to your secret property.
P.S. I tested this with Spring 3.1
UPDATED: This example works unstable. I do know why, but sometimes it set property, somewhere no. If you have two spring forms in one jsp this approach can set property for first and not set for second or vice versa. May be because jsp:setProperty work after spring forms tag, may be not.
人们常常错误地将某些值作为隐藏传递到表单中,因为他们无法以其他方式将这些字段设置为更新为以前的值。例如,如果我在更新表单时未传递某些值,这些字段将变为空。然而,这是更新值的错误方法。有
来做到这一点。更新后,您可以在更新完成后使用 (SessionStatus status) 参数和 status.setComplete() 将会话设置为完成。如果您想获取模型中没有的一些值,您可以随时使用 request.getParameter("yourinputname");您可以使用
设置一些值,如果你想在某些部分使用,如javascript(如果使用
不起作用)。
如果您确实想访问隐藏文件,请尝试使用
在查看绑定错误之前。
Often people wrongly pass some values as hidden to form, because they cannot otherwise set those fields in update to previous values. E.g If I don't pass some values while updating to the form, those fields become null. However this is wrong way to update values. There is
to do that. After you update, you can set the session to complete using (SessionStatus status) parameter and status.setComplete() after the update is done. If you want to get some values that is not in model you can always use request.getParameter("yourinputname"); You can use
to set some values if you want to use in some parts like javascript (if using
does not work).
And if you really want to access the hidden filed try using
before looking at binding errors.