我正在做一个项目,我在我的操作类填充方法中将对象加载到 ArrayList arrayDiary 中。链接到该页面的页面的 URL 为“populateDiary.action”。我有这个arrayList的公共getter和setter,我可以看到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 天,但没有成功。提前感谢您的帮助和反馈。