Question

Je bandes: balise de lien dans une jsp avec un attribut d'événement:

<stripes:link href="${actionBean.context.currentStage.stripesForwardAction}"  addSourcePage="true" event="showTab2Link">

Cela déclenche la validation pour déclencher sur les propriétés imbriquées:

    @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")
}) 

Mais cela fait bien si les valeurs réelles, il est la validation ne sont pas présents, mais ils sont présents dans le code HTML et lors du débogage du grain. Pourquoi les rayures: lien
ce déclencheur Si je change à un rayures. Présenter alors il est bien

merci,

Dave

Était-ce utile?

La solution

La raison pour laquelle il est déclenchée parce que les bandes: soumettre doit avoir les champs du formulaire, de sorte que ces champs sont transmis au serveur lorsque le formulaire est soumis. Avec le lien, vous ne recevez pas de champs à moins que vous les ajouter en tant que paramètres de lien.

Vous pouvez résoudre ce problème de deux manières, selon:

Voulez-vous les champs présents sur le haricot lorsque le lien est cliqué? Ensuite, vous aurez besoin pour remplir le lien avec les params donc ils vont ajouter un style chaîne de requête 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>

Par contre, si vous ne les avez pas besoin dans votre haricot pour cet événement, vous pouvez dire à vos @ValidateNestedProperties ignorer cet événement:

@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")
}) 

Ensuite, la validation ne sera pas exécuté sur le showTab2Link de l'événement à moins qu'il a effectivement été fourni.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top