Jag ser att name
, titel
, status
och anmärkningar
fält är alla String
(enligt din kommentar
) så i för
loop bör du casta Objektet
som en String
och du behöver inte de fyra ArrayList
för detta.
Så här skulle radtaggen se ut:
<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>
Varsågod, det här borde fungera.
Ett renare sätt tror jag skulle vara att ha en POJO definierad som skulle lagra dessa värden och sedan kan POJO:s lista returneras. Jag har dock inte provat den andra metoden.
En annan standardmetod är att inkludera extra fält i något av entitetens *Impl
och sedan returnera listan över den enheten, i ditt fall skulle jag anta att du har Student
och Närvaro
enheter, så att du kan lägga till fälten status
&anmärkningar
i StudentImpl
och returnera sedan en List
fname
i AttendanceImpl
och returnera Lista