2012-04-22 4 views
0

Когда я пытаюсь загрузить страницу, то datatable пуст. С помощью <h:dataTable ... /> данные отображаются в строках. Однако после дальнейшего контроля список фактически написан ... но похоже, что он использует toString() в списке непосредственно в атрибуте value для datatable. Что не так?Данные не отображаются в datatable

Подложка боб

@Named 
@RequestScoped 
public class QuestionTableBacking { 

    @Inject 
    private QuestionServiceLocal questionService; 

    public List<Question> getAllQuestions() { 
     return questionService.getAllQuestions(); 
    } 
} 

Facelet файл

 <h:form> 

      <p:dataTable value="#{questionTableBacking.allQuestions}" var="question" > 
       <p:column> 
        <h:outputText value="#{question.description}" /> 
       </p:column> 

       <p:column> 
        <h:link outcome="report" value="Rapporter" /> 
       </p:column> 
      </p:dataTable> 

     </h:form> 

Это то, что я вижу в поджигатель

<p:datatable value="[[email protected], [email protected], [email protected],..... var="question"> 
       <p:column> 
       </p:column> 

       <p:column><a href="/myapp/report.faces">Report</a> 
       </p:column> 
      </p:datatable> 

POM файл (они содержатся в правильных родительских элементов)

<dependency> 
    <groupId>org.primefaces</groupId> 
    <artifactId>primefaces</artifactId> 
    <version>3.2</version> 
    <scope>compile</scope> 
</dependency> 

<repository> 
    <id>prime-repo</id> 
    <name>PrimeFaces Maven Repository</name> 
    <url>http://repository.primefaces.org</url> 
    <layout>default</layout> 
</repository> 

Внимание: Эта страница требует XML имен http://primefaces.org/ui объявлен с префиксом р, но не существует библиотеки тегов для этого пространства имен.

Полный файл:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:o="http://openfaces.org/"> 

<h:head> 
    <title>Simple JSF Facelets page</title> 
</h:head> 

<h:body> 

    <ui:composition template="templates/masterLayout.xhtml"> 
     <ui:define name="windowTitle">Question</ui:define> 

     <ui:define name="content"> 
      <div id="page-intro"> 
       <h2>Titile</h2> 

       <p>Blah blah</p> 
      </div> 

      <h:form> 
       <div class="question-filter-container"> 
        <o:inputTextFilter id="quesiton-filter" styleClass="input-text question-filter" for="question-table" 
             expression="#{question.description}" 
             promptText="" /> 
       </div> 

       <o:dataTable value="#{questionTableBacking.allQuestions}" var="question" rowKey="#{question.id}" 
          id="question-table" pageSize="25" applyDefaultStyle="false" 
          cellspacing="0"> 
        <f:facet name="below"> 
         <o:dataTablePaginator id="paginator" pageNumberPrefix="Side" pageCountPreposition="av" 
               styleClass="question-paginator" /> 
        </f:facet> 
        <o:column> 
         <h:outputText value="#{question.description}" /> 
        </o:column> 
        <o:column bodyClass="question-operations"> 
         <h:link outcome="report" value="Report" /> 
        </o:column> 
       </o:dataTable> 
      </h:form> 

     </ui:define> 
    </ui:composition> 

</h:body> 

</html> 

ответ

0

#{question.description} должен быть превращен в String значение, которое находится внутри текущей итерации question объектов .description propety, это не то, что вы видите на выходе? если это так, то его все хорошо ...

EDIT

посмотрев на ваш вопрос обновления, кажется, что вы не добавили primefaces баночку в свой проект ...

есть вы добавили xmlns: p = "http://primefaces.org/ui в свой файл xhtml?

+0

вы включили в свой класс класс объектов jars? знаете ли вы, что вы работаете с CDI, потому что вы не указали свой вопрос как cdi один, «@Named» и «@Inject» не являются анимированными JSG ... – Daniel

+0

, если вы хотите использовать простой face library, вы должны добавить его в свой проект, так же, как вы добавили jsf jars – Daniel

+0

попытаться удалить/переадресовать файл jf-файлов и, возможно, обновить ваш проект, возможно, снова запустите eclipse ... – Daniel

Смежные вопросы