Links link events acionando a validação que está incorreta
-
25-09-2019 - |
Pergunta
Eu tenho Stripes: Link Tag em um JSP com um atributo de evento:
<stripes:link href="${actionBean.context.currentStage.stripesForwardAction}" addSourcePage="true" event="showTab2Link">
Isso desencadeia a validação para desencadear propriedades aninhadas:
@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")
})
No entanto, isso seria bom se os valores reais que sua validação não estivessem presentes, mas eles estão presentes no HTML e ao depurar o feijão. Por que as listras: o link desencadeia isso?
Se eu alterar para uma listras: envie, tudo bem.
obrigado,
Dave
Solução
O motivo pelo qual está sendo acionado é porque as listras: o envio devem ter os campos no formulário, para que esses campos sejam transmitidos ao servidor quando o formulário é enviado. Com o link, você não obtém campos, a menos que os adicione como parâmetros de link.
Você pode consertar esta de duas maneiras, dependendo:
Deseja que esses campos presentes no feijão quando o link é clicado? Em seguida, você precisará preencher o link com os parâmetros para que eles sejam adicionados, obtenha o estilo de string de consulta:
<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>
Por outro lado, se você não precisar deles em seu feijão para esse evento, poderá dizer às suas proportistas @Validateretested para ignorar esse evento:
@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")
})
Em seguida, a validação não será executada no evento ShowTab2Link, a menos que tenha sido fornecido.