2012-10-27 3 views
1

나는이 문서의 방법에 따라 JSF 데이터 테이블의 행을 업데이트하려고 : http://www.mkyong.com/jsf2/how-to-update-row-in-jsf-datatable/자바 JSF : 데이터 테이블 태그 편집 행

내가 저장을 클릭하면, 나는이 오류 메시지가 무엇입니까 :

'null 변환기'의 변환 오류 설정 값 '1970-09-08'입니다.

스크린 샷 : Screenshot

마크 업 :

<h:form> 
         <h:commandButton action="addEmployee" value="Add New" class="btn btn-primary" /> 
         <br /> 

         <h:dataTable class="table table-striped" value="#{employeeCollection.items}" var="item"> 
          <h:column> 
           <f:facet name="header">Edit</f:facet> 
           <h:commandButton action="#{employeeCollection.edit(item)}" value="Edit" class="btn" rendered="#{not item.isEditing}" /> 
           <h:commandButton action="#{employeeCollection.save(item)}" value="Save" class="btn btn-success" rendered="#{item.isEditing}" /> 
          </h:column> 
          <h:column> 
           <f:facet name="header">First Name</f:facet> 
           <h:inputText value="#{item.firstName}" rendered="#{item.isEditing}" /> 
           <h:outputText value="#{item.firstName}" rendered="#{not item.isEditing}" /> 
          </h:column> 
          <h:column> 
           <f:facet name="header">Last Name</f:facet> 
           <h:inputText value="#{item.lastName}" rendered="#{item.isEditing}" /> 
           <h:outputText value="#{item.lastName}" rendered="#{not item.isEditing}" /> 
          </h:column> 
          <h:column> 
           <f:facet name="header">Date of Birth</f:facet> 
           <h:inputText value="#{item.dateOfBirth}" rendered="#{item.isEditing}" /> 
           <h:outputText value="#{item.dateOfBirth}" rendered="#{not item.isEditing}" /> 
          </h:column> 
         </h:dataTable> 
        </h:form> 

내가 관리 빈 코드를 게시 할 것입니다,하지만 난 (항목) 저장 버튼을 클릭하면, (가) 막아 때문이 필요한 생각하지 않습니다 기능은 결코 어쨌든 호출되지 않는 것 같습니다 ... 그래서 그것은 다른 것임에 틀림 없습니다. 나는 Java에 익숙하지 않기 때문에 어딘가에서 아주 기본적인 것을 잊어 버리고있는 것 같습니다 ...

답변

4

오류는 null 변환기를 사용하여 String을 변환하는 중 오류가 발생했다고 설명합니다. 이 오류는 DateTime 변환기가없는 <h:inputText> 태그 구성 요소에 Date 개체를 사용하는 경우 발생합니다. 당신은 JSF 코드를 변경하여이 문제를 해결할 수 있습니다

<h:column> 
    <f:facet name="header">Date of Birth</f:facet> 
    <h:inputText value="#{item.dateOfBirth}" rendered="#{item.isEditing}"> 
     <!-- adding the datetime converter --> 
     <f:convertDateTime pattern="yyyy-MM-dd" /> 
    </h:inputText> 
    <h:outputText value="#{item.dateOfBirth}" rendered="#{not item.isEditing}" /> 
</h:column> 

아직도, 그것은 당신과 당신의 사용자에 대한 날짜 유효성 검사를 처리하는 좋은 방법이 아니다. PrimeFaces Calendar 또는 RichFaces Calendar과 같은 캘린더 구성 요소를 제공하는 타사 라이브러리를 사용하는 것이 좋습니다.

DateTime 및 Numbers에는 제공된 JSF 변환기를 사용할 수 있으며 사용자 정의 데이터 변환기를 만들 수 있습니다. 더 많은 정보 :

+0

솔루션 +1 및 "PrimeFaces 및 RIchFaces 달력"접근 방식에 대해 우리가 알고 만들기 – exexzian

관련 문제