0

私は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();            

    }
4

1 に答える 1

0

他のすべてが正しいと仮定すると、ここではすべての詳細が問題になっていないため、変更することをお勧めします

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

あなたが持っている要件はあなたの質問から明確ではありません、英語はあなたの第一言語ではないと感じています:)

于 2013-03-02T19:44:26.670 に答える