Rayas enlace de validación evento desencadenante que es incorrecta
-
25-09-2019 - |
Pregunta
Tengo rayas: Etiqueta de enlace en una JSP con un atributo de evento:
<stripes:link href="${actionBean.context.currentStage.stripesForwardAction}" addSourcePage="true" event="showTab2Link">
Esto desencadena la validación a gatillo de propiedades anidados:
@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")
})
Sin embargo, esto estado bien si los valores reales es la validación no están presentes, pero que están presentes en el html y al depurar el grano. ¿Por qué el rayas:? Eslabón de gatillo este Listado Si lo cambio a un rayas:. Presentar entonces está bien
Gracias,
David
Solución
La razón por la que está siendo activado se debe a que las rayas: presentar debe tener los campos del formulario, por lo que los campos se transmiten al servidor cuando se envía el formulario. Con el enlace, no obtiene ningún campo a no ser que se agregan como parámetros de enlace.
Se puede solucionar este problema de dos maneras, en función:
¿Quieres aquellos campos presentes en el grano cuando se hace clic en el enlace? A continuación, tendrá que llenar el vínculo con los parametros por lo que se añadirán estilo de cadena de consulta 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>
Por otro lado, si usted no los necesita en su frijol para ese evento, puede indicar a sus @ValidateNestedProperties ignorar este caso:
@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")
})
A continuación, la validación no se ejecuta en el showTab2Link evento a menos que realmente se suministra.