2011-08-05 4 views
2

私はページのフォーム検証を改善することを任されています。Java strutsはインデックスからプロパティを取得します

サイトでは、現在の画面にエラーを印刷するページの上部にループがある.jspファイル/豆/ストラットなどを使用しています。検証が失敗したときに

<nested:iterate id="currentError" property="wizard.errors" type="java.lang.String" indexId="counter"> 
    <tr> 
     <td valign="top" class="wizardErrorText" width="2%"> 
      &gt; 
     </td> 
     <td class="wizardErrorText"> 
      <span errorId=""> 
       <bean:write name="currentError"/> 
      </span> 
     </td> 
    </tr> 
</nested:iterate> 

は、今私は、既存の方法に変更しております検証に失敗したフィールドのIDとエラーメッセージをわずかに示します。私は同様のループを設定して、検証に失敗したフィールドのIDをJavaScriptで読み取った領域に印刷し、それに応じてフィールドを強調表示します。

別のループを使用するのではなく、indexIdを使用して配列の値を検索し、errorIdに含めることができます。

どうすればよいですか?

私はjsp.getPropertyといくつかの他のメソッドを試しましたが、運がありません。

おかげ ゲイリー

+0

* *配列または* an *配列には?それはcurrentErrorがHashMapなのではないので、IDは別の並列配列にありますか? –

+0

はい、アイデアは並列配列になっていますが、残念ながらwizard.erroredInputs [counter]は動作していないか、他の方法で試してみたものの、最初の配列の反復カウンタを使用して、 。 – Gary

答えて

1

あなたはこのような何かことができるようになります。

<bean:write name="wizard" property="erroredInputs[counter]" /> 

あるいは、完全な例:

<nested:iterate id="currentError" property="wizard.errors" type="java.lang.String" indexId="counter"> 
    <tr> 
     <td valign="top" class="wizardErrorText" width="2%"> 
      &gt; 
     </td> 
     <td class="wizardErrorText"> 
      <span errorId="<bean:write name="wizard" property="erroredInputs[counter]" />"> 
       <bean:write name="currentError"/> 
      </span> 
     </td> 
    </tr> 
</nested:iterate> 

詳しい情報はここで見つけることができます:https://struts.apache.org/1.x/struts-taglib/indexedprops.html

関連する問題