У меня есть тег stripes:link в jsp с атрибутом события:
<stripes:link href="${actionBean.context.currentStage.stripesForwardAction}" addSourcePage="true" event="showTab2Link">
Это инициировало проверку для включения вложенных свойств:
@ValidateNestedProperties({
@Validate(field="county", required=true, minlength=2, maxlength=2, mask="\\d\\d"),
@Validate(field="parish", required=true, minlength=3, maxlength=3, mask="\\d\\d\\d"),
@Validate(field="holding", required=true, minlength=4, maxlength=4, mask="\\d\\d\\d\\d")
})
Однако это было бы бывший прекрасный, если фактические значения, это - проверка, не присутствуют, но они присутствуют в HTML и при отладке боба. Почему stripes:link инициировал бы это?
Если я изменяю его на stripes:submit затем, это прекрасно.
спасибо,
Dave
Причина его срабатывания заключается в том, что stripes: submit должны иметь поля в форме, поэтому эти поля передаются на сервер при отправке формы. Со ссылкой вы не получите никаких полей, если не добавите их в качестве параметров ссылки.
Вы можете исправить это одним из двух способов в зависимости от:
Вы хотите, чтобы эти поля присутствовали в компоненте при щелчке по ссылке? Затем вам нужно будет заполнить ссылку параметрами, чтобы они были добавлены в стиле строки запроса GET:
<stripes:link href="${actionBean.context.currentStage.stripesForwardAction}" addSourcePage="true" event="showTab2Link">
<stripes:param name="county" value="${actionBean.county}" />
<stripes:param name="parish" value="${actionBean.parish}" />
<stripes:param name="holding" value="${actionBean.holding}" />
link text
</stripes:link>
С другой стороны, если они вам не нужны в вашем компоненте для этого события, вы можете сообщить своему @ValidateNestedProperties, чтобы игнорировать это событие:
@ValidateNestedProperties({
@Validate(field="county", on="!showTab2Link", required=true, minlength=2, maxlength=2, mask="\\d\\d"),
@Validate(field="parish", on="!showTab2Link", required=true, minlength=3, maxlength=3, mask="\\d\\d\\d"),
@Validate(field="holding", on="!showTab2Link", required=true, minlength=4, maxlength=4, mask="\\d\\d\\d\\d")
})
Тогда проверка не будет выполняться для события showTab2Link, если оно не было предоставлено на самом деле.