Vidím, že name , title , status a remarks všechna pole jsou String (podle vašeho komentář
), takže v for smyčky, měli byste přetypovat Object jako String a nepotřebujete čtyři ArrayList za to.
Takto by značka řádku vypadala:
<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>
Tady to máš, mělo by to fungovat.
Čistší způsob, jak si myslím, by bylo mít definované POJO, které by tyto hodnoty uložilo, a poté lze vrátit seznam POJO. Druhý přístup jsem však nezkoušel.
Dalším standardním přístupem je zahrnout další pole do kteréhokoli z *Impl entity a poté vrátit seznam této entity, ve vašem případě bych předpokládal, že máte Student a Attendance entity, takže můžete zadat pole status &remarks v StudentImpl a poté vrátí List<Student> nebo zadejte fname v AttendanceImpl a vrátí List<Attendance> z vyhledávací metody. (aktualizováno po tento komentář
)