Je ne fais pas Jena, mais vous essentiellement comme itérer sur le com.hp.hpl.jena.query.ResultSet
et l'analyse des informations dans un List<RowObject>
où RowObject
est votre propre classe de modèle qui représente une seule ligne que vous souhaitez afficher dans un tableau HTML . Après le mappage, placez le List<RowObject>
dans l'étendue de la demande et transférez la demande à un JSP.
List<RowObject> results = getItSomeHow();
request.setAttribute("results", results); // Will be available as ${results} in JSP
request.getRequestDispatcher("page.jsp").forward(request, response);
Ensuite, dans JSP, utilisez JSTLc:forEach
itérer sur la List<RowObject>
, l'impression d'un tableau HTML.
<table>
<c:forEach items="${results}" var="rowObject">
<tr>
<td>${rowObject.someProperty}</td>
<td>${rowObject.anotherProperty}</td>
...
</tr>
</c:forEach>
</table>
Mise à jour en fonction de votre autre réponse, voici comment vous pouvez créer un List<RowObject>
basé sur ResultSet
de Jena:
List<RowObject> results = new ArrayList<RowObject>();
while (rs.hasNext()) {
RowObject result = new RowObject();
QuerySolution binding = result.nextSolution();
result.setInd(binding.get("ind"));
result.setSomethingElse(binding.get("something_else"));
// ...
results.add(result);
}
et l'afficher comme suit:
...
<td>${rowObject.ind}</td>
<td>${rowObject.somethingElse}</td>
...
Ceci est fondamentalement le même que ma réponse, seulement vous l'imprimez au mauvais endroit. La pratique normale consiste à afficher les résultats dans le fichier JSP (la vue) et non dans une servlet (le contrôleur). Vous devez créer un modèle et le transmettre à la vue, comme indiqué dans ma réponse. – BalusC