我正在开发一个项目,我在我的action类populate方法中将对象加载到ArrayList arrayDiary中。链接到此页面的页面具有URL“populateDiary.action”。我有公共吸气者和这个arrayList的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天,但没有成功。提前感谢您的帮助和反馈。
答案 0 :(得分:1)
您的操作类中有一个显而易见的ERROR
,您的班级和方法arrayDiary
中定义了arrayEvent
和populate()
,确实没有发生任何事情在<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";
}