我的表格中有一个字段用于介绍与合同相关的货件数量。装运不需要是合同的数量,可以在不同的装运中拆分,但可以肯定的是,装运数量不得大于合同数量。
我可以限制提交表单,或通过javascript验证但我更喜欢不允许用户犯错误:)。
我想知道在编写jsp时我是否可以使用<form:input>
以及使用<spring:message>
的弹簧变量${cantidadPH}
标记来分配<spring:message code="logicomex.transporte.cantidad.placeholder" var="cantidadPH"/>
<form:input id="cantidad" path="cantidad" type="number" step="0.1" class="form-control" placeholder="${cantidadPH}" />
的最大属性。
这在占位符中非常完美:
<form:hidden id="cantidadMax" path="contratMercan.cantidadMax" />
<form:input id="cantidad" path="cantidad" type="number" step="0.1" class="form-control" max="${cantidadMax}" placeholder="${cantidadPH}" />
但是当我尝试使用“相同技术”获取最大值时,就像这样:
${cantidadMax}
它不会按预期处理public class TransporteFormHelper extends Transporte implements Serializable {
。
有什么建议吗?
编辑:支持方法如下:
类似于支持bean的类是TransporteFormHelper:
Transporte
ContratMercan
实体具有TransporteFormHelper
属性,因此您可以找到@Override
public ContratMercan getContratMercan() {
return super.getContratMercan();
}
中的覆盖:
max
在ContratMercan内部,有一个最大数量字段,必须用于设置<form:input>
字段的private double cantidadMax;
属性。
<c:set var="cantidadMax" value="${transporteFormHelper.contratMercan.cantidadMax}" />
<form:input id="cantidad" path="cantidad" type="number" step="0.1" class="form-control" max="${cantidadMax}" placeholder="${cantidadPH}" />
注意: 这不是我的代码,我正在重建一个预制的应用程序,所以我必须携带我以前从未使用过的支持系统。;)
EDIT2: @grid,似乎无法正常工作......
path="cantidad"
请注意,transporteFormHelper.cantidad
引用${contratMercan.cantidadMax}
,我也尝试使用${transporteFormHelper.contratMercan.cantidadMax}
和max
,而且他们都没有设置{{1}属性
答案 0 :(得分:1)
这是因为你实际上并没有使用完全相同的技术。只是部分。您没有像 cantidadPH 情况中的var那样设置 cantidadMax 变量。 你应该再使用一个变量,即
<c:set var="cantidadMax" value="${yourCommandObjectName.contratMercan.cantidadMax}" />
之前引用它。目前您正在使用隐藏字段ID。
答案 1 :(得分:0)
您应该直接使用JSTL表达式来表示max
属性值。假设支持表单的bean为myBean
(<form:form commandName="myBean" ...>
),您可以写:
<form:input id="cantidad" path="cantidad" type="number" step="0.1" class="form-control" max="${myBean.cantidadMax}" placeholder="${cantidadPH}" />
或导致cantidadMas
。
修改
上次编辑显示你的bean时,你应该写:
<form:input id="cantidad" path="cantidad" type="number" step="0.1" class="form-control" max="${transporteFormHelper.contratMercan.cantidadMax}" placeholder="${cantidadPH}" />
如果实现TransporteFormHelper的bean是名为transporteFormHelper