Thank you, Andy.
As you can see, my idea was to pass the ResultSet as a session attribute
(request.getSession().setAttribute("results", results)) to be recovered and
passed to JSP.
I will see ResultFactory and devise a way to pass the ResultSet to JSP.
Thank you, once more.
Herli Menezes
2011/9/12 Andy Seaborne <[email protected]>
>
>
> On 12/09/11 03:44, Herli Joaquim de Menezes wrote:
>
>> Hello, Friends
>>
>> I don't know how to solve this. I wrote a simple Jena web application in
>> order to query on a simple LOM RDF file. I am using a MVC model, so that
>> the
>> control view is composed by servlets. Excuse me for the long post...but
>> here
>> is the code snippet:
>>
>>
>> {..............}
>> String filename = "/WEB-INF/TesteLOM2.rdf";
>> ServletContext context = getServletContext();
>>
>> InputStream in = context.getResourceAsStream(**filename);
>> if (in != null) {
>> Model model = ModelFactory.**createMemModelMaker()
>> .createDefaultModel();
>> model.read(in, null);
>> // null base URI, since model URIs are absolute
>> in.close();
>>
>> @SuppressWarnings("unchecked")
>> List<String> lista = (List<String>) request.getSession()
>> .getAttribute("sugestao");
>> String palavrachave = null;
>> for (Iterator<String> iter = lista.iterator();
>> iter.hasNext();)
>> {
>>
>> palavrachave = iter.next();
>> // Creates a query....
>> String queryString =
>>
>> "PREFIX NS1:<http://www.exemplo.com/#> "
>> + "PREFIX rdf:<
>> http://www.w3.org/1999/02/22-**rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>> >"
>> + "PREFIX
>> dcterms:<http://purl.org/dc/**terms/<http://purl.org/dc/terms/>
>> >"
>> + "PREFIX
>> dc:<http://purl.org/dc/**elements/1.1/<http://purl.org/dc/elements/1.1/>
>> >"
>> + "PREFIX lom:<
>> http://ltsc.ieee.org/rdf/**lomv1p0/terms/<http://ltsc.ieee.org/rdf/lomv1p0/terms/>>
>> "
>> + "PREFIX lomvoc:<
>> http://ltsc.ieee.org/rdf/**lomv1p0/vocabulary#<http://ltsc.ieee.org/rdf/lomv1p0/vocabulary#>
>> >"
>> + "SELECT ?title ?LearningResourceType ?location
>> "
>> + "WHERE {"
>> + " ?keyword lom:keyword \""
>> + palavrachave
>> + "\""
>> + " ."
>> + " ?keyword dc:title ?title ."
>> + " ?keyword lom:location ?location ."
>> + " ?keyword lomvoc:LearningResourceType
>> ?LearningResourceType."
>> + "}";
>>
>> Query query = QueryFactory.create(**queryString);
>>
>> // get the results...
>>
>> QueryExecution qe = QueryExecutionFactory.create(**query,
>> model);
>> ResultSet results = qe.execSelect();
>> request.getSession().**setAttribute("results", results);
>>
>> // Just for debugging....
>> ResultSetFormatter.out(System.**out, results, query);
>>
>
> A ResultSet is an iterator.
>
> ResultSetFormatter.out(System.**out, results, query); reads the iterator
> so at the end, there are no more results. iterator.hasNext is false.
>
> If you want to print it out and pass it to ther code, you need to create a
> copy or rewindable ResultSet (see ResultSetFactory).
>
>
> qe.close();
>>
>> }
>> request.getAttribute("results"**);
>>
> ??
>
>
>> VIEW is a JSP to render the results:
>>
>> {...........}
>>
>> <form method="post" action="**ControlaBuscaDeObjetos">
>> <fieldset>
>> <legend> Objetos Selecionados</legend>
>>
>> <p> some explanation...</p>
>>
>> <table>
>> <c:forEach items="${results}" var="item">
>>
>
> This iterator has ended.
>
>
> <tr>
>> <td>${item}</td>
>>
>
> </tr>
>> </c:forEach>
>> </table>
>>
>> </fieldset>
>>
>> </form>
>> ++++++++++++++++++++++++
>> The terminal output is OK:
>>
>
> Andy
>
>
>
>> ------------------------------**------------------------------**
>> -------------
>> | title | LearningResourceType | location |
>> ==============================**==============================**
>> =============
>> | "Força Resultante" | "narrativetext" | "file:///path" |
>> | "Calculo da Força Resultante" | "Problem Statement" | "file:///path" |
>> ------------------------------**------------------------------**
>> -------------
>> ------------------------------**------------------------------
>> | title | LearningResourceType | location |
>> ==============================**==============================
>> | "Momento Linear" | "Problem Statement" | "file:///path" |
>> ------------------------------**------------------------------
>> ------------------------------**------------------------------**
>> -------------------
>> | title | LearningResourceType |
>> location |
>> ==============================**==============================**
>> ===================
>> | "Velocidade" | "narrativetext" |
>> "file:///path" |
>> | "Velocidade no Movimento Harmônico" | "Problem Statement" |
>> "file:///path" |
>> | "Velocidade " | "Problem Statement" |
>> "file:///path" |
>> ------------------------------**------------------------------**
>> -------------------
>> ------------------------------**------------------------
>> | title | LearningResourceType | location |
>> ==============================**========================
>> | "Derivada" | "narrativetext" | "file:///path" |
>> ------------------------------**------------------------
>> ------------------------------**------------------------------**-
>> | title | LearningResourceType | location |
>> ==============================**==============================**=
>> | "Função Contínua" | "narrativetext" | "file:///path" |
>> ------------------------------**------------------------------**-
>> ------------------------------**-------------------------
>> | title | LearningResourceType | location |
>> ==============================**=========================
>> | "Sequência" | "narrativetext" | "file:///path" |
>> ------------------------------**-------------------------
>> ++++++++++++++++++++++++++++++**++++++++
>>
>> But I can't get it rendered at JSP. What am I doing wrong?
>>
>>
>>
--
Herli Menezes
*Per Astra ad aspera.*