2012-01-09 10 views
2

他の多くの質問があり、それらに多くの時間を費やしているにもかかわらず、私はイテレータに何がうまくいかないのか理解できません。Strutsイテレータが動作しない

私はオブジェクトのリストを持っています。これを繰り返すと、各オブジェクトのさまざまなプロパティをテキストフィールドに表示します。私は以下のコードのようにイテレータを設定していますが、何とか行が表示されません。 - 移入

<s:form theme="simple" id="salaryDetails" name="salaryDetails"> 
    <table> 
     <tr> 
      <td>Name</td> 
      <td>Basic</td> 
      //etc// 
     </tr> 

     <s:iterator value="salaryDetail" var="salaries"> 
      <tr> 
       <td><s:textfield name="emplName" value="%{employeeCode}"/></td> 
       <td><s:textfield name="basic" value="%{basic}"/></td> 
      </tr> 
     </s:iterator> 
    </table> 
</s:form> 

この形式の出力は、私はいくつかのデータプリとテキストフィールドの行を期待する一方、見出しとだけ行である:

これは、JSPです。イテレータは動作していないようです。私はアクションクラスのコンソールにそれを印刷できるので、リストにはデータが含まれていると確信しています。

助けてください!

本当に緊急です。

おかげ

+0

アクションコードを表示できますか?あなたは 'salaryDetail'のゲッターとセッターを尊敬していますか? –

答えて

1

いくつかの問題は、あなたがリストアップのためにあなたが公共のゲッターを定義していないか、あなたが適切ビーンプロパティを使用していない、あなたのaction.eitherであるようです。あなたの例の 迅速な実行は、ここで私のために正常に動作しているサンプルコードここ

public classDemoAction extends ActionSupport{ 
private List<SalaryDetail> salaryDetail; 
// getter ans setter for this 

public String execute() throws Exception{ 
    SalaryDetail detail=new SalaryDetail(); 
    detail.setName("a"); 
    salaryDetail=new ArrayList<SalaryDetail>(); 
    SalaryDetail detail1=new SalaryDetail(); 
    detail1.setName("a"); 
    salaryDetail.add(detail); 
    salaryDetail.add(detail1); 
    return SUCCESS; 

} 

}

は、JSPコード

<s:form theme="simple" id="salaryDetails" name="salaryDetails"> 
     <table> 
     <tr> 
      <td>Name</td> 
      <td>Basic</td> 
      //etc// 
     </tr> 

     <s:iterator value="salaryDetails"> 
      <tr> 
       <td><s:textfield name="emplName" value="%{name}"/></td> 

      </tr> 
     </s:iterator> 
    </table> 

がちょうどそこのどちらかであるいくつかのコードをクロスチェックされていますタイプミスまたは命名規則と一致しない可能性があります

+0

ありがとうございました、あなたは正しかった、私はパブリックゲッターを持っていませんでした、それだけです。どのように私はそれを逃したのか分からない。たぶん間違った場所で問題を探していたのかもしれません。 – kanishk

関連する問題