날짜 필드에 변환기 및 메시지 태그를 사용하지 않도록 사용자 정의 jsf2 구성 요소를 만들려고합니다. 템플릿을 사용하여 Icefaces 1.x에서이 작업을 수행했습니다. 하지만 JSF 2에서는 복합 컴포넌트를 사용해야했습니다. 그것은 내가 바라는 것뿐만 아니라가는 것입니다.Icefaces 2.0 : 얼음 문제 : selectInputDate 내부 사용자 정의 구성 요소
는 복합 컴포넌트가 성공적으로 생성되었다 : 속성이 null 예상대로
<composite:interface>
<composite:attribute name="style" />
<composite:attribute name="partialSubmit" />
<composite:attribute name="rendered" />
<composite:attribute name="immediate" />
<composite:attribute name="value" required="true" />
<composite:attribute name="pattern" required="true" />
</composite:interface>
<composite:implementation>
<ice:panelGroup rendered="#{cc.attrs.rendered}">
<ice:selectInputDate value="#{cc.attrs.value}"
style="#{cc.attrs.style}" id="input" renderAsPopup="true"
partialSubmit="#{cc.attrs.partialSubmit }"
immediate="#{cc.attrs.immediate }">
</ice:selectInputDate>
<ice:message for="input" style="color: red; display: block"></ice:message>
</ice:panelGroup>
</composite:implementation>
이 컴포넌트의 동작. 그러나 내 데이터베이스에서 데이터를로드하면 java.sql.Date 인스턴스가 생깁니다. (내 개체가 java.util.date를 사용한다는 사실에도 불구하고 전자는 후자를 확장합니다)
java.lang.IllegalArgumentException가 : 클래스 에 유형 java.util.Date 클래스의 03/03/11 20:00 변환 할 수 없습니다 java.sql.Date
어떤 이상한 것은 그 내가 사용하는 경우 얼음 : 내 복합 구성 요소 외부 selectInputDate, 그 오류가 발생하지 않습니다. 어떤 아이디어?
궁금한 점 : 왜 복합 컴포넌트를 만들지 않았습니까? 이 결정이 상위 레벨에서 나오거나 어떤 이유로 더 이상 IceFaces 2.0에서 템플릿을 사용할 수 없습니까? – BalusC
템플릿을 사용할 수 있습니다. 그러나 입력 구성 요소로 기존 템플릿을 사용하면 문제가 발생했습니다. 반복되는 구성 요소 ID 예외가 계속 발생했습니다. 일하기 위해 노력하면서 하루를 낭비 한 후에, 나는 새로운 접근법으로 나아 가기로 결정했다. 그리고 또 다른 날이 있습니다 ... :) – Andre
클래스 패스 지옥 같은 곳이 아니 었는지 확인하기 위해 Tomcat 7에서 IceFaces 2.0을 사용하여 테스트 프로젝트를 만들었습니다. java.util .date 필드에 저장하고 java.sql.date의 인스턴스를 할당합니다. ** 문제 **가 재현 될 수 있습니다. 버그처럼 보입니다 ... – Andre