Jeg kan se, at navnet
, titel
, status
og bemærkninger
felt er alle String
(i henhold til din kommentar
) så i for
sløjfe skal du caste Objektet
som en String
og du behøver ikke de fire ArrayList
for dette.
Sådan ser rækketagget ud:
<liferay-ui:search-container-row className="java.lang.Object" modelVar="search">
<%--
Since an "Object[]" is nothing but an "Object", we first cast the "search"
instance to an "Object[]" and then to a "String"
--%>
<liferay-ui:search-container-column-text name='name' value='<%= (String) ((Object[])search)[0] %>' />
<liferay-ui:search-container-column-text name='title' value='<%= (String) ((Object[])search)[1] %>' />
<liferay-ui:search-container-column-text name='status' value='<%= (String) ((Object[])search)[2] %>' />
<liferay-ui:search-container-column-text name='remarks' value='<%= (String) ((Object[])search)[3] %>' />
</liferay-ui:search-container-row>
Nå, det burde virke.
En mere renere måde, jeg tror, ville være at have en POJO defineret, der ville gemme disse værdier, og så kan POJO's liste returneres. Jeg har dog ikke prøvet den anden tilgang.
En anden standardtilgang er at inkludere ekstra felter i ethvert af enhedens *Impl
og derefter returnere listen over denne enhed, i dit tilfælde vil jeg antage, at du har Student
og Deltagelse
enheder, så du kan sætte felterne status
&bemærkninger
i StudentImpl
og returner derefter en Liste
fname
i AttendanceImpl
og returner Liste