간단한 작업을 원합니다 : Java 목록의 내용을 단일 열의 테이블에 표시하십시오. 문제는 다음과 같습니다. 테이블이 표시되어야하는 위치는 아무 것도 표시되지 않습니다. 코드에서<rich : datatable> 내용을 <a4j:repeat>으로 반복하면 아무 것도 표시되지 않습니다. - JSF
보면 :
PesquisaBean.java 코드에
private String title;
List<String> uriByTitle = new ArrayList<String>();
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public List<String> getUriByTitle() {
for(String s : this.uriByTitle) { //test
System.out.println(s);
}
return uriByTitle;
}
public void search() {
this.searchUriByTitle();
System.out.println("1: " + this.uriByTitle); //test
}
public void searchUriByTitle() {
RDFNode uri;
String queryString = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> " +
"PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?document WHERE { " +
"?document dc:title ?title." +
"FILTER (?title = \"" + this.getTitle() + "\"). }";
Query query = QueryFactory.create(queryString);
// Execute the query and obtain results
QueryExecution qe = QueryExecutionFactory.create(query, databaseModel);
ResultSet results = qe.execSelect();
while(results.hasNext()) {
QuerySolution querySolution = results.next();
uri = querySolution.get("document");
ResourceImpl resourceImpl = (ResourceImpl) uri;
this.uriByTitle.add(uri.toString()); //adding elements
}
qe.close();
}
I 2 개 시험했다 위에 다음의 내부 변수 uriByTitle
의 값을 출력하는 1 시도 search()
방법을 사용하고 getUriByTitle()
방법으로 2를 시도했습니다. search()
의 테스트에서 내 Eclipse 콘솔에서 올바른 내용을 인쇄했지만 getUriByTitle()
의 테스트에서는 아무 것도 인쇄되지 않습니다. 코드의 다른 부분에서
봐 :
pesquisaDocumento.xhtml 여기에 무슨 문제
<h:body>
<h:form enctype="multipart/form-data">
<h:panelGrid columns="2">
Titulo: <h:inputText value="#{pesquisaBean.title}" />
<h:commandButton value="Procurar" action="#{pesquisaBean.search()}" />
</h:panelGrid>
<rich:dataTable>
<a4j:repeat value="#{pesquisaBean.uriByTitle}" var="uri" >
<rich:column>
<f:facet name="header">URI</f:facet>
#{uri}
</rich:column>
</a4j:repeat>
</rich:dataTable> <br />
</h:form>
</h:body>
? 고맙습니다!
그것은 작동합니다! 정말 고맙습니다! – Luciane