0

アクションクラスpopulateメソッドのArrayListarrayDiaryにオブジェクトをロードするプロジェクトに取り組んでいます。このページにリンクしているページのURLは「populateDiary.action」です。このarrayListのパブリックゲッターとセッターがあり、populateメソッドが呼び出され、arrayListに実際に値が含まれていることがわかります。

私の問題は、STRUTSイテレータータグを使用してliを設定しようとすると、画面に何も表示されないことです。私はこれに関するいくつかの投稿を読みました、そして私が見ることができる限りそれらを正確にコピーしました-しかし私は私の結果を画面に見ていません。これが私のdiary.jspコードです:

<s:iterator value="arrayDiary" status="pos" id="res">
<li onclick="$('#eventList').toggleClass('eventList'); $('#eventDesc').toggleClass('eventDesc'); $('.active').toggleClass('active'); $(this).toggleClass('active');"><a href="#"><s:property value="#res.title"/></a></li>
</s:iterator>

これが私のアクションクラスコードです:

private ArrayList<DiaryEntry> arrayDiary;
private ArrayList<DiaryEntry> arrayEvent;

public String populate() {
    ArrayList<DiaryEntry> arrayEvent = new ArrayList<DiaryEntry>();
    ArrayList<DiaryEntry> arrayDiary = new ArrayList<DiaryEntry>();
    DiaryEntry load = new DiaryEntry();
    username = (String) ActionContext.getContext().getSession().get("username");
    loginId = (String) ActionContext.getContext().getSession().get("loginId");
    ArrayList<DiaryEntry> diaryEntry = load.loadDiaryEntry(username, loginId);
    for (DiaryEntry entry:diaryEntry) {
        if(entry.getEvent() == null) {
            arrayDiary.add(entry);
        }
        else {
            arrayEvent.add(entry);
        }
    }
    return "populate";
}

public ArrayList<DiaryEntry> getArrayDiary() {
    return arrayDiary;
}

public void setArrayDiary(ArrayList<DiaryEntry> arrayDiary) {
    this.arrayDiary = arrayDiary;
}

public ArrayList<DiaryEntry> getArrayEvent() {
    return arrayEvent;
}

public void setArrayEvent(ArrayList<DiaryEntry> arrayEvent) {
    this.arrayEvent = arrayEvent;
}

これが私のstruts.xmlです:

<action name="*Diary" method="{1}" class="spirit.DiaryAction">
    <result name="populate">/diary.jsp</result>
    <result name="input">/diary.jsp</result>
    <result name="success">/diary.jsp</result>
</action>

誰かが私が間違っているところを見つけることができれば本当にありがたいです。私はこの問題に2日間取り組んできましたが、成功しませんでした。よろしくお願いします。

4

1 に答える 1

1

ERRORあなたのアクションクラスには明らかなものがあり、あなたはあなたのクラスとあなたのメソッドで定義しました、あなたの中arrayDiaryで何も起こらなかったことは確かですarrayEventpopulate()<s:iterator>

populate()次のようにメソッドを変更してください。

public String populate() {
    arrayEvent = new ArrayList<DiaryEntry>();
    arrayDiary = new ArrayList<DiaryEntry>();
    DiaryEntry load = new DiaryEntry();
    username = (String) ActionContext.getContext().getSession().get("username");
    loginId = (String) ActionContext.getContext().getSession().get("loginId");
    ArrayList<DiaryEntry> diaryEntry = load.loadDiaryEntry(username, loginId);
    for (DiaryEntry entry:diaryEntry) {
        if(entry.getEvent() == null) {
            arrayDiary.add(entry);
        }
        else {
            arrayEvent.add(entry);
        }
    }
    return "populate";
}
于 2012-08-22T21:48:40.073 に答える