我正在使用servlet来操纵本体.我得到了SPARQL查询的结果,我想在JSP(Servlet)中显示(打印)该结果.
以下代码段可用于在控制台中打印结果.
com.hp.hpl.jena.query.Query query = QueryFactory.create(queryStr);
QueryExecution qe = QueryExecutionFactory.create(query,model);
com.hp.hpl.jena.query.ResultSet rs = qe.execSelect();
ResultSetFormatter.out(System.out, rs);
任何想法?
解决方法:
我没有做耶拿,但是基本上您想遍历com.hp.hpl.jena.query.ResultSet并将信息映射到List< RowObject>中.其中RowObject是您自己的模型类,它代表您想在HTML表中显示的一行.映射后,将List< RowObject>放到在请求范围内,并将请求转发到JSP.
List results = getItSomeHow();
request.setAttribute("results", results); // Will be available as ${results} in JSP
request.getRequestDispatcher("page.jsp").forward(request, response);
然后在JSP中,使用JSTL c:forEach遍历List< RowObject> ;,打印HTML表.
${rowObject.someProperty} | ${rowObject.anotherProperty} |
...
根据您的其他答案进行更新,这是如何创建List< RowObject>的方法.基于耶拿的ResultSet:
List results = new ArrayList();
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);
}
并显示如下:
...
${rowObject.ind}${rowObject.somethingElse}...
标签:jena,servlets,java,jsp
来源: https://codeday.me/bug/20191210/2098514.html