間違っているストライプリンクイベントトリガーの検証
-
25-09-2019 - |
質問
私持っているのストライプ:イベント属性を持つ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とするときBeanをデバッグ内に存在している場合。
なぜだろうストライプ:リンク・トリガーこの
?
私はストライプに変更した場合:提出し、それは結構です。
おかげで、
デーブ
解決
フォームが送信されたときにこれらのフィールドがサーバーに送信されますので提出は、フォーム内のフィールドを持っている必要があります:ストライプため、
それがトリガーされています理由があります。あなたはリンクパラメータとしてそれらを追加しない限り、リンクを使用すると、任意のフィールドを得ることはありません。
あなたは応じて、2つの方法のこれを修正することができます
リンクがクリックされたときに、あなたが豆に存在するこれらのフィールドをしたいですか?
:彼らはGETクエリ文字列のスタイルを追加することがありますので、その後、あなたはのparamsとのリンクを移入する必要があります<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上で実行されることはありません。
所属していません StackOverflow