需要将禁用字段绑定到模型属性,是否可以为同一属性添加隐藏字段?

时间:2015-11-11 23:15:42

标签: spring spring-mvc

在我的SpringMVC表单中,我遇到了将禁用文本框绑定到Model对象的问题。问题在于,即使最初填充,在提交表单后,残缺框的内容也会在下一页刷新时丢失,因为已禁用“已禁用”字段。

但是,我通过添加绑定到同一属性的隐藏字段来解决这个问题。现在我的禁用文本框即使在提交后也会保留其内容。这是正确的方法,如果我需要始终在我的禁用框中显示属性值吗?

<form:input path="signatureBlock.signature" disabled="true"/>
<!--  Hidden field to submit Signature with form, binds to the same Model property -->
<form:hidden path="signatureBlock.signature" />

1 个答案:

答案 0 :(得分:3)

我更愿意向您推荐这种方法

<form:input path="signatureBlock.signature" readonly="true"/>
禁用和只读html属性之间的

Here's差异定义

但真正的目标不是将值持久存储到数据库中。 如果您将字段值设置为禁用或只读,则无关紧要(在修改字段值的上下文中),因为如果用户从帖子表单中删除这些属性(在html中),则字段值将始终绑定到表单。解决方案不是将表单中的'disabled'值保留在将表单转换为db对象的方法中,或者使用允许的字段设置正确的init绑定器。