2010-06-06 20 views
3

我正在使用servlet来操纵本体。我得到了我的SPARQL查询的结果,并且想要显示(打印)导致JSP(Servlet)的结果。在html(servlet/jsp)中打印jena结果集

以下代码段可用于在控制台中打印结果。

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); 

任何想法?

回答

1

此代码段将发送给您Servlet或者你也可以使用独立的java类来实现它。

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(); 

while(rs.hasNext()){ 

QuerySolution binding = rs.nextSolution();      
System.out.println(binding.get("ind")); 
} 

注:

“IND” 是你在SPARQL查询SELECT子句闯民宅的变量。

谢谢!

+0

这和我的答案基本相同,只是你在错误的地方打印。通常的做法是将结果显示在JSP文件(视图)中,而不是在servlet(Controller)中显示。您需要创建一个模型并将其传递给视图,如我的答案中所述。 – BalusC 2010-06-07 17:36:24

2

我不做耶拿,但基本上你想遍历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> 

更新根据您的其他答案,这里是你如何能基础上,耶拿的ResultSet创建List<RowObject>

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> 
... 
+0

::这是不可能的创建名单并得到了错误数量。有没有办法做到这一点,除了JSTL.stuck在这里..帮助我兄弟! 谢谢! – smartcode 2010-06-06 20:07:11

+0

错误告诉我们有关问题的原因。你不应该忽视它们,而是解释它们并相应地解决问题。如果你不能解释错误,请在这里提问。 – BalusC 2010-06-06 20:26:37

+0

::嗨哥.. 我以我自己的方式得到了答案!非常感谢您的回复和评论! – smartcode 2010-06-07 17:17:07