Je vois que le name
, title
, status
et remarks
champ sont tous String
(selon votre commentaire
) donc dans le for
boucle, vous devez caster le Object
sous forme de String
et vous n'avez pas besoin des quatre ArrayList
pour cela.
Voici à quoi ressemblerait la balise de ligne :
<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>
Voilà, ça devrait marcher.
Je pense qu'une manière plus propre serait d'avoir un POJO défini qui stockerait ces valeurs, puis la liste des POJO pourrait être renvoyée. Je n'ai cependant pas essayé la deuxième approche.
Une autre approche standard consiste à inclure des champs supplémentaires dans l'un des éléments *Impl
de l'entité puis en renvoyant la liste de cette entité, dans votre cas, je suppose que vous avez Student
et Attendance
entités, vous pouvez donc mettre les champs status
&remarks
dans StudentImpl
puis retourne un List<Student>
ou mettre fname
dans AttendanceImpl
et renvoie List<Attendance>
de la méthode finder. (mis à jour après ce commentaire
)