Struts:从View访问bean属性

时间:2012-03-08 14:48:06

标签: java jsp struts

提前感谢您花时间阅读!

我正在使用NetBeans IDE 7.1上的Web应用程序,在Windows 7上使用Struts 1.3.10,Apache Tomcat 7.0.22,PostgreSQL 9.1。

我的问题如下:

我有一个名为" Reminder"的类,它的属性是:startDate,endDate和id。我希望从我的jsp中的所有提醒中获取所有开始和结束日期,以便我可以在我的Web应用程序的侧边栏的日历上突出显示这一天的日期。

在我的登录操作中,我有以下代码:

Reminder reminder = new Reminder();
ArrayList<Reminder> queryResults = 
dbms.queryReminders(reminder);

在这里,我收集了数据库中的所有提醒(模型函数只是从提醒中执行SELECT *并返回)

然后我结束了:

request.setAttribute("reminders",queryResults);
return mapping.findForward(User);

我已将收集的结果设置为我决定调用的属性&#34;提醒&#34;,这应该包含我想要的所有提醒。

之后我从这个视图中获取数据:

<bean:write name="reminders" scope="request"/>

但我得到的是:[classes.Reminder@1d1ce11](在这种情况下,我只在数据库中插入了一个提醒。我在我的包中有一个名为Reminder的类叫做类,所以我认为& #39; s引用类Reminder的对象(我在DB上插入的对象))。

但我想要做的是能够从该对象获取startDate和endDate,而不仅仅是那样的对象。有谁知道如何从jsp访问这些属性?

我已经做了很多研究,但通常教程会告诉你如何使用这些bean标签获取类的属性,但是这里我有一个特定类的对象数组,我想要它们的属性,所以情况有所不同。

我真的很感激一些指导。谢谢!

1 个答案:

答案 0 :(得分:2)

那是因为您在请求中将List(类型为ArrayList)存储在以下代码中:

request.setAttribute("reminders",queryResults);

因此,为了从Reminder获取每个List,您需要遍历列表(在JSP中)。

要遍历集合,您将使用<logic:iterate>标记:

<logic:iterate name="reminders" id="reminder" scope="request">
    ID: <bean:write name="reminder" property="id" />
    Start Date: <bean:write name="reminder" property="startDate" />
    End Date: <bean:write name="reminder" property="endDate" />
</logic:iterate>