Я не делаю Jena, но в основном вы хотели бы перебрать com.hp.hpl.jena.query.ResultSet
и отобразить информацию в List<RowObject>
где RowObject
ваш собственный класс модели, которая представляет собой одну строку, которую вы хотите отобразить в HTML-таблице , После сопоставления поместите List<RowObject>
в область запроса и переадресуйте запрос в JSP.
List<RowObject> results = getItSomeHow();
request.setAttribute("results", results); // Will be available as ${results} in JSP
request.getRequestDispatcher("page.jsp").forward(request, response);
Затем в JSP, используйте JSTLc:forEach
перебрать List<RowObject>
, печать таблицы HTML.
<table>
<c:forEach items="${results}" var="rowObject">
<tr>
<td>${rowObject.someProperty}</td>
<td>${rowObject.anotherProperty}</td>
...
</tr>
</c:forEach>
</table>
Update основанный на другом ответе, вот как вы можете создать List<RowObject>
на основе ResultSet
Йена в:
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);
}
и отобразить его следующим образом:
...
<td>${rowObject.ind}</td>
<td>${rowObject.somethingElse}</td>
...
Это в принципе то же самое, что и мой ответ, только вы печатаете его не в том месте. Обычная практика заключается в том, что вы показываете результаты в JSP-файле (View), а не в сервлете (контроллер). Вам необходимо создать модель и передать ее в представление, как указано в моем ответе. – BalusC