Vedo che il name
, title
, status
e remarks
i campi sono tutti String
(come da commenta
) così nel for
loop dovresti lanciare Object
come String
e non hai bisogno dei quattro ArrayList
per questo.
Ecco come apparirà il tag di riga:
<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>
Ecco fatto, dovrebbe funzionare.
Penso che un modo più pulito sarebbe avere un POJO definito che memorizzerebbe questi valori e quindi è possibile restituire l'elenco del POJO. Tuttavia, non ho provato il secondo approccio.
Un altro approccio standard consiste nell'includere campi extra in uno qualsiasi dei *Impl
dell'entità e poi restituendo l'elenco di quell'entità, nel tuo caso suppongo che tu abbia Student
e Attendance
entità, quindi puoi inserire i campi status
&remarks
in StudentImpl
e quindi restituire un List<Student>
oppure inserisci fname
in AttendanceImpl
e restituisci List<Attendance>
dal metodo di ricerca. (aggiornato dopo questo commento
)