java - Struts2填充标签选择下拉列表

标签 java select struts2 tags

我尝试使用 Struts 填充选择下拉列表,但它不起作用:

我有我的 Action 类:

私有(private)整数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;
    }

这是 AnneeResultat 类:

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 页面上使用的选择标记。我在页面上使用图 block 。这是我页面上的第一个版本:

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

结果是,在我的页面中,选择标记生成一个包含空元素的选择框。我看不到选择框上的值。没有可见的值(value)。 生成的代码是:

<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>

我不知道如何解决这个问题。如果有人有一些想法,我们会欢迎的!

最佳答案

只需从 AnneeResultat 中删除构造函数并在 JSP 中使用以下选择标记即可。

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

关于java - Struts2填充标签选择下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783926/

相关文章:

java - 如何在单元测试中模拟 REST API?

mysql - 每位客户当天的倒数第五笔交易

mysql - 选择和选择合并

SQL根据行信息连接不同的表

struts2 - 在 Struts2/OGNL 中将整个单词大写

javascript - Struts 2 表单提交时未调用操作方法

java - Struts2 + 完整 Hibernate 插件 --> session 已关闭?

java - Jackson ObjectMapper 无法反序列化 POJO,抛出异常 : No suitable constructor found for type [. ..]:无法从 JSON 对象实例化

java - 改变 Activity 方向的填充

java - 未为 null CoordinateReferenceSystem 生成 PRJ 文件