0

選択ドロップダウンリストにStrutsを入力しようとしましたが、機能しません。

アクションクラスがあります:

プライベート整数anneeResultat;

    private List<AnneeResultat> anneeResultatList = new ArrayList<AnneeResultat>();


public Integer getAnneeResultat() {

        return anneeResultat;
    }
    public void setAnneeResultat(Integer anneeResultat) {
        this.anneeResultat = anneeResultat;
    }


public List<AnneeResultat> getAnneeResultatList() {
    this.anneeResultatList.add(new AnneeResultat(2005,"2005"));
    this.anneeResultatList.add(new AnneeResultat(2006,"2006"));
    this.anneeResultatList.add(new AnneeResultat(2007,"2007"));
    this.anneeResultatList.add(new AnneeResultat(2008,"2008"));
    this.anneeResultatList.add(new AnneeResultat(2009,"2009"));
    this.anneeResultatList.add(new AnneeResultat(2010,"2010"));
    this.anneeResultatList.add(new AnneeResultat(2011,"2011"));
        return this.anneeResultatList;
    }
    public void setAnneeResultatsList(List<AnneeResultat> anneeResultatList) {
        this.anneeResultatList = anneeResultatList;
    }
    public String execute(){
    return SUCCESS;
    }

クラスAneeResultatは次のとおりです。

public class AnneeResultat {
     private Integer keyAnnee;  
     private String valueAnnee;         
    public AnneeResultat() {    
    }
    public AnneeResultat(Integer key, String value) {
        super();
        this.keyAnnee = key;
        this.valueAnnee = value;
    }
    public Integer getKey() {
        return keyAnnee;
    }
    public void setKey(Integer key) {
        this.keyAnnee = key;
    }
    public String getValue() {
        return valueAnnee;
    }
    public void setValue(String value) {
        this.valueAnnee = value;
    }   
}

これが私のjspページで使用されているselectタグです。私は自分のページでタイルを使用しています。これが私のページの最初のバージョンです:

<s:select name="anneeResultat" label="Année de résultats" list="anneeResultatList" listKey="keyAnnee" listValue="valueAnnee"></s:select>

その結果、私のページでは、selectタグが空の要素を持つ選択ボックスを生成します。選択ボックスに値が表示されません。値は表示されません。生成されるコードは次のとおりです。

<select name="anneeResultat" id="choices_anneeResultat">
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
</select>

次の選択タグを使用した場合:

<s:select name="anneeResultat" label="Année de résultats" list="anneeResultatList" key="keyAnnee" value="valueAnnee"></s:select>

ハッシュコードは選択ボックスリストに印刷されます。

生成されるコードは次のとおりです。

<select name="anneeResultat" id="choices_anneeResultat">
    <option value="fr.si2m.occ.dao.model.ui.AnneeResultat@1b209bc">fr.si2m.occ.dao.model.ui.AnneeResultat@1b209bc</option>
    <option value="fr.si2m.occ.dao.model.ui.AnneeResultat@19d5723">fr.si2m.occ.dao.model.ui.AnneeResultat@19d5723</option>
    <option value="fr.si2m.occ.dao.model.ui.AnneeResultat@c3bba9">fr.si2m.occ.dao.model.ui.AnneeResultat@c3bba9</option>
    <option value="fr.si2m.occ.dao.model.ui.AnneeResultat@5554a3">fr.si2m.occ.dao.model.ui.AnneeResultat@5554a3</option>
    <option value="fr.si2m.occ.dao.model.ui.AnneeResultat@27b326">fr.si2m.occ.dao.model.ui.AnneeResultat@27b326</option>
    <option value="fr.si2m.occ.dao.model.ui.AnneeResultat@6283de">fr.si2m.occ.dao.model.ui.AnneeResultat@6283de</option>
    <option value="fr.si2m.occ.dao.model.ui.AnneeResultat@1bf7b9c">fr.si2m.occ.dao.model.ui.AnneeResultat@1bf7b9c</option>
</select>

この問題を解決する方法がわかりません。誰かがアイデアを持っているなら、それは歓迎されます!

4

3 に答える 3

2

表示する列には「listValue」を使用します。

<s:select name="anneeResultat" label="Année de résultats" list="anneeResultatList" key="keyAnnee" listValue="valueAnnee"></s:select>

于 2014-10-26T15:19:26.940 に答える
2

からコンストラクターを削除AnneeResultatし、JSP で以下の select タグを使用するだけです。

<s:select name="anneeResultat" label="Année de résultats" 
    list="anneeResultatList" key="keyAnnee" value="valueAnnee"></s:select>
于 2013-09-24T08:43:55.100 に答える
0

「listKey=foo」は、同じ名前の getter を想定していますが、値に「get」が追加された名前になっています (例: getFoo())。

ゲッター名を「getKeyAnnee」に変更するか、listKey を「key」に変更します。

于 2014-03-14T15:57:20.143 に答える