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 Listefname i AttendanceImpl og returner Liste