質問

私持っているのストライプ:イベント属性を持つ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上で実行されることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top