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ář
)