动态形式的支柱

时间:2013-03-01 14:20:14

标签: forms dynamic struts

我是Struts 1.3的新手。

我需要邀请一些人参与已经发送但尚未回答的民意调查。我已将这些人聚集在一个带有复选框的列表中,以便再次邀请他们参与投票。此列包含带有struts标记表单字段索引的动态字段。 (你不能邀请那些已经回答的人)

JSP视图:

    <logic:iterate id="respondent" collection="${respondent}">

    <logic:notEqual name="respondent" property="participation" value="true">
            <html:checkbox indexed="true" property="participation" name="respondent" value="true"></html:checkbox>
    </logic:notEqual>

    </logic:iterate>

形式:

public class F_Invite extends org.apache.struts.action.ActionForm {

public F_Invite() {
    super();
}

private Map<String, String> respondent = new HashMap<String, String>();

public void setRespondent(String key, String value) {
    respondent.put(key, value);
}

public void setRespondent(Map<String, String> nut) {
    this.encuestado = nut;
}

public Map<String, String> getRespondent(){
    return this.encuestado;
}

public String getRespondent(String key) {
    return encuestado.get(key);
}

public void reset(ActionMapping mapping, HttpServletRequest request) {

    respondent.clear();

}

我在执行此操作时遇到NullPointerException:

    F_Invite nonparticipants = (F_Invite) form;

    Map<String, String> participantstoinvite = nonparticipants.getRespondent();

    Iterator iter = participantstoinvite.entrySet().iterator();

    while (iter.hasNext()) {

        Map.Entry entrada = (Map.Entry) iter.next();            

    }

1 个答案:

答案 0 :(得分:0)

假设其他一切都是正确的,因为所有细节都不在这里,我建议你改变

<logic:iterate id="respondent" collection="${respondent}">' to '<logic:iterate **name**="respondent" collection="${respondent}">

你的要求并不清楚你的问题,感觉英语不是你的第一语言:)