2017-11-04 1 views
0

Primefaces에 표시되는 내용에 반대 작동하지 않습니다 행 편집. 최소한의 변경으로 공식 사이트에서 복사했습니다. 하지만 대신 행 편집 기능을 가져 오는 열을 가져 오지 않습니다. Primefaces jar 버전을 확인하기 위해 5.0으로 다운 그레이드를 시도했지만 역시 작동하지 않았습니다.Primefaces 데이터 테이블 행 편집 공식 사이트

<?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:f="http://java.sun.com/jsf/core" 
xmlns:p="http://primefaces.org/ui" 
xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" 
xmlns:pm="http://primefaces.org/mobile"> 

<f:view renderKitId="PRIMEFACES_MOBILE" /> 

<h:head> 

</h:head> 
<body> 
<h:form id="form"> 
<p:growl id="msgs" showDetail="true"/> 

<p:dataTable id="cars1" var="document" value="#{dataGridView.setProducts}" editable="true" style="margin-bottom:20px"> 
    <f:facet name="header"> 
     Row Editing 
    </f:facet> 

    <p:ajax event="rowEdit" listener="#{ttEditView.onRowEdit}" update=":form:msgs" /> 
    <p:ajax event="rowEditCancel" listener="#{ttEditView.onRowCancel}" update=":form:msgs" /> 

    <p:column headerText="Size"> 
     <p:cellEditor> 
      <f:facet name="output"><h:outputText value="#{document.productSize}" /></f:facet> 
      <f:facet name="input"><p:inputText value="#{document.productSize}" style="width:80%"/></f:facet> 
     </p:cellEditor> 
    </p:column> 
    <p:column headerText="Type"> 
     <p:cellEditor> 
      <f:facet name="output"><h:outputText value="#{document.productCategory}" /></f:facet> 
      <f:facet name="input"><p:inputText value="#{document.productCategory}" style="width:80%"/></f:facet> 
     </p:cellEditor> 
    </p:column> 
    <p:column style="width:32px"> 
     <p:rowEditor /> 
    </p:column> 
</p:dataTable> 
</h:form> 
</body> 
</html> 

다음과 같이 출력됩니다. enter image description here

내가 원하는 것은 공식 사이트에서 볼 수있는 행 편집 기능입니다.

무엇이 잘못 될 수 있습니까?

+0

** 당신이 ** ** PrimeFaces 자동차 0.9.4를 사용하지 않는 경우에 작동 하는가? 그리고 항상 명시 적으로 jsf 버전과 구현을 기술하십시오. 'api'버전은 많은 것을 말하지 않습니다 – Kukeltje

+0

NO, PrimeFaces mobile을 제거해도 문제가 해결되지 않았습니다. 또한 jsf-api가 JSF 버전을 알려줄 것입니다. 그렇지 않니? api가 JSF 버전을 알려줄 수 없다면 어떻게 될까요? –

+0

예, JSF API 버전을 알려주지 만 실제 구현에는 두 가지가 있습니다. 각기 다른 버전과 버그가 있습니다 ... 서버를 참조하십시오 (JBoss, Glassfish 등과 같은 서버에서 JSF를 사용하면 서버를 참조하십시오) 또는 Tomcat 또는 ...과 같은 일반 서블릿 엔진을 사용하는 경우 프로젝트 구성 – Kukeltje

답변

0

JSF에서는 <body> 대신 <h:body>을 사용해야합니다. 그렇지 않으면 구성 요소가 올바르게 렌더링되지 않습니다.

+0

'h : body'와 관련된 특정 태그를 추가해야하는 태그가있는 경우에만 특별히 필요하지는 않습니다. 'target = "body"'(target 속성이 사용되는 경우에만 outputStyleSheet)을 갖는 구성 요소 – Kukeltje

1

<f:view renderKitId="PRIMEFACES_MOBILE" /> 

을 추가하여 사용할 수있는 모바일 구성 요소를 강제로. 모바일 구성 요소는 일반 구성 요소의 모든 기능을 지원하지 않습니다. 이것은 그들 중 하나입니다. (쇼케이스를 비교하고 차이점을 확인할 수 있습니다.)

PrimeFaces는 6.2의 모바일 구성 요소를 더 이상 사용하지 않을 것이며 6.3에서 제거 할 것입니다. 동시에 그들은 정상적인 구성 요소가 모바일 장치에서보다 잘 작동하도록 만드는 데 중점을 둘 것입니다. 예를 들어 데이터 테이블 쇼케이스에서 볼 수 있듯이 많은 응답 기능이 있습니다.

기타 응답 기능은 CSS에서 사용자의 미디어 쿼리와 함께 grid-css로 구현되어야합니다. 빠른 시작은 PrimeFaces 엘리트 테마입니다.

응답 성/휴대 기기와 관련된 구성 요소에 누락되었거나 도청 된 것으로 판단되면 github에 문제를 신고하십시오. 그들은 그 (것)들에 행동에 아주 치열하다

관련 문제