2012-08-30 3 views
1

Java EE6/CDI JSF2 Primefaces 3.3.1.표준 JSF 구성 요소가 잘 렌더링되는 동안 PrimeFaces 구성 요소가 표시되지 않습니다.

<h:dataTable var="_employeeVList" value="#{employeeVProducer.employeeVList}" rendered="#{not empty employeeVProducer.employeeVList}"> 
    <f:facet name="header"> 
     Employee Search Results 
    </f:facet> 
    <h:column> 
     <f:facet name="header">Area</f:facet> 
     <h:outputText value="#{_employeeVList.areaName}" /> 
    </h:column> 
    ... 
</h:dataTable> 

표는 HTML 정상 보이는, 출력 렌더링 : 나는 JSF를 사용하면 검색 결과의 테이블을 생성하는 데 사용되는 몇 개의 계단식 드롭 다운에 검색 페이지를 만들었습니다. 하지만 프라임면으로 바꿀 때 :

<p:dataTable var="_employeeVList" value="#{employeeVProducer.employeeVList}" rendered="#{not empty employeeVProducer.employeeVList}"> 
    <f:facet name="header"> 
     Employee Search Results 
    </f:facet> 
    <p:column> 
     <f:facet name="header">Area</f:facet> 
     <h:outputText value="#{_employeeVList.areaName}" /> 
    </p:column> 
    ... 
</p:dataTable> 

테이블이 표시되지 않습니다. 내가 불을 지르고와 함께 소스를 볼 때 나는 HTML과 약간의 불확실성을 참조하십시오

<table id="searchForm:results"> 
    <tbody> 
    <tr> 
    <td> 
    <p:datatable rendered="true" value="[[email protected],         [email protected],        [email protected], 
              ... 
           [email protected]]" 
var="_employeeVList"> 
    <p:column></p:column> 
    <p:column></p:column> 
    ...       
    </p:datatable></td> 
    </tr> 
    </tbody> 
    </table> 

객체 태그 라벨에, 열이 비어 있습니다. 페이지의 다른 곳에서 p : panelGrid를 사용하고 있는데, 여기에는 드롭 다운이 포함되어 있고 올바르게 표시됩니다.

기본 템플릿 페이지에 h : head 및 h : body가 있습니다.

테이블에 상태 저장 요청 범위가있는 bean이 있습니다.

외부 자바 스크립트를 사용하고 있지 않습니다.

내가 뭘 잘못하고 있니?

답변

2

따라서 <p:xxx> 태그는 JSF 태그로 전혀 구문 분석되지 않으며 생성 된 HTML 출력에 일반 바닐라로 표시됩니다. 그 이유는 다음 중 하나 이상을 가질 수 있습니다

  1. 당신은보기에서 p: XML 네임 스페이스를 선언하는 것을 잊었다, 또는 잘못된 네임 스페이스 URI를 사용했다. 그것은해야한다 :

    xmlns:p="http://primefaces.org/ui" 
    
  2. 당신은 실제로 PrimeFaces 라이브러리를 설치하는 것을 잊었다. 둘 중 하나의 문제 여야합니다.

    a. 웹 응용 프로그램 /WEB-INF/lib 폴더에 primefaces.jar을 삭제하십시오.

    b. 반드시 당신의 의존성 관리자 (예 : 메이븐)를 제작하는 프로젝트에 PrimeFaces을 추가 구성 및 런타임 /WEB-INF/lib 폴더

+0

doh, 네임 스페이스가 내가 확인한 첫 번째 항목이었습니다. 고맙습니다 @BalusC – gebuh

+0

당신을 진심으로 환영합니다. – BalusC

-1

BalusC의 목록에 하나의 다른 이유를 추가하려면에 추가되었습니다

당신이 돈이 ' URL에 서블릿 URL 맵핑을 추가하면 이상한 결과가 발생하고 JSF는 XHTML 페이지를 구문 분석하지 않습니다! 예를 들어

, 당신은 web.xml에 다음 URL 매핑이있는 경우 :

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 

을 당신은 JSF 올바르게 출력을 렌더링하는 /faces/yourpage.xhtml를 사용해야합니다.

/yourpage.xhtml을 사용하면 이상한 결과가 표시됩니다.

+0

사실, OP의 특별한 경우에,''이 효과가 있었기 때문에 나는 그 가능성을 흠집 냈습니다 :) – BalusC

관련 문제