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 Listfname i AttendanceImpl och returnera Lista