Struts 2填充选择下拉列表

时间:2012-10-05 09:23:26

标签: struts2 tiles

您好我想用一些值填充选择下拉列表。我使用Struts 2,Tiles和JSP。我在Action类中初始化我的列表但我仍然收到以下错误:  引起:标记'select',字段'list',名称'anneeResultat':请求的列表键'anneesResultatsList'无法解析为collection / array / map / enumeration / iterator类型。例如:人或人。{name} - [unknown location] 这是我在Action类中的代码:

private AnneeResultat anneeResultat;
private Map<String, String> anneesResultatsList = new HashMap<String, String>();

public Map<String,String> getAnneesResultatsList() {
    this.anneesResultatsList.put("2005","2005");
    this.anneesResultatsList.put("2006","2006");
    this.anneesResultatsList.put("2007","2007");
    this.anneesResultatsList.put("2008","2008");
    this.anneesResultatsList.put("2009","2009");
    this.anneesResultatsList.put("2010","2010");
    this.anneesResultatsList.put("2011","2011");

        return this.anneesResultatsList;
    }
    public void setAnneesResultatsList(Map<String,String> anneesResultatsList) {
        this.anneesResultatsList = anneesResultatsList;
    }

    return SUCCESS;
    }

我的struts.xml文件包含:

<action name="ChoixAxes" class="fr.si2m.occ.web.actions.ChoixAxesAction"
            method="execute">
            <result type="tiles">choixAxes.tiles</result>
        </action>

我的jsp在这里:

<s:set name="theme" value="'xhtml'" scope="page" />
        <s:form action="ChoisirAxes" name="choices" id="choices">
         <s:select name="anneeResultat" label="Année de résultats" list="anneesResultatsList"></s:select>

        <s:radio label="Listes nominatives" name="listesNominatives" list="#{'1':'Oui','2':'Non'}" value="2" />
        <s:submit value="Calculer provisions" name="calculerProvisions"/>
        <s:reset value="Annuler" />
        <input type="button" value="Critères sauvegardés" id="criteresSauvegardes"/>
        </s:form>

有人可以帮我吗? 从yersterday开始我就遇到了这个问题。

3 个答案:

答案 0 :(得分:0)

  

为实现的操作准备拦截器调用prepare()   制备。这种拦截器对于任何情况都非常有用   你需要确保在实际执行方法之前运行一些逻辑   运行。

你的动作应该扩展Preparable interceptor并覆盖prepare()方法,给出预先填充的数据。

Struts2 Prepare Interceptor

答案 1 :(得分:0)

将AnneesResultatsList放入会话

Map session=ActionContext.getScession();session.put("list",AnneesResultatsList );  
<pre>
s:select name="anneeResultat" label="Année de résultats" list="%{#session.list}""></s:select>
</pre>

答案 2 :(得分:-1)

实际上是,

Map session = ActionContext.getcontext().getsession();
session.put("key",list);

<s:select list="%{#session.key}">