Ich sehe, dass der name
, title
, status
und remarks
Feld sind alle String
(gemäß Ihrem Kommentar
) also im for
Schleife sollten Sie das Object
umwandeln als String
und Sie brauchen die vier ArrayList
nicht dafür.
So würde das Zeilen-Tag aussehen:
<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>
Bitte schön, das sollte funktionieren.
Ein saubererer Weg wäre meiner Meinung nach, ein POJO zu definieren, das diese Werte speichert, und dann kann die Liste des POJO zurückgegeben werden. Den zweiten Ansatz habe ich allerdings noch nicht ausprobiert.
Ein weiterer Standardansatz besteht darin, zusätzliche Felder in eines der *Impl
-Elemente der Entität aufzunehmen und dann die Liste dieser Entität zurückzugeben, würde ich in Ihrem Fall annehmen, dass Sie Student
haben und Attendance
Entitäten, so dass Sie die Felder status
setzen können &remarks
in StudentImpl
und dann eine List<Student>
zurückgeben oder geben Sie fname
ein in AttendanceImpl
und List<Attendance>
zurückgeben aus der finder-methode. (aktualisiert nach diesen Kommentar
)