Widzę, że name
, title
, status
i remarks
wszystkie pola to String
(zgodnie z twoim komentarz
), więc w for
pętla, powinieneś rzutować Object
jako String
i nie potrzebujesz czterech ArrayList
w tym celu.
Oto jak wyglądałby tag wiersza:
<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>
Proszę bardzo, to powinno działać.
Myślę, że bardziej czystszym sposobem byłoby zdefiniowanie POJO, które będzie przechowywać te wartości, a następnie zwrócenie listy POJO. Nie próbowałem jednak drugiego podejścia.
Innym standardowym podejściem jest uwzględnienie dodatkowych pól w dowolnym z *Impl
encji a następnie zwracając listę tego podmiotu, w twoim przypadku zakładam, że masz Student
i Attendance
encje, dzięki czemu możesz umieścić pola status
&remarks
w StudentImpl
a następnie zwróć List<Student>
lub umieść fname
w AttendanceImpl
i zwróć List<Attendance>
z metody wyszukiwania. (zaktualizowano po ten komentarz
)