2011-08-04 2 views
1

내 JSF 페이지에서 목록에서 개체를 선택하여 채워야하는 <rich:autocomplete/>이 있습니다. 객체의 id에는 유용한 의미가 없으므로 읽을 수있는 문자열로 변경하려면 Converter을 써야합니다.속성을 고유하게 식별 할 수없는 경우 JSF 변환기 사용 방법

개체의 문자열 표현은 다른 개체를 고유하게 식별 할 수 없으므로 변환이 되돌릴 수 없습니다. 이제이 문제를 어떻게 해결할 수 있는지 알고 싶습니다. 선택한 객체의 id<h:inputHidden>에 저장하고 뷰 범위의 백업 빈에 전달할 수 있습니까?

답변

1

입력 구성 요소와 변환기를 잘못 사용하고 있습니다. 개체의 고유 식별자 (항목 값)를 입력 값으로 사용해야하는 동안 개체의 문자열 표현 (항목 레이블)을 입력 값으로 사용하고있는 것 같습니다. 변환기는 사용자 지정 개체와 문자열 식별자 사이가 아닌 사용자 지정 개체와 고유 식별자를 단순히 변환하는 것입니다.

+0

감사합니다,하지만 난 내가 사용하고 말했듯이 내가 이해하지 않습니다 같은 itemValue 및 ITEMLABEL에 대한 지원하지 않습니다 <부자 자동 완성 /> (버전 4) 구성 요소를 <시간 : selectOneMenu /> . 다른 한편으로는 사용자에게 고유하지 않은 속성을 보여야하므로 어떻게이 목표를 달성 할 수 있습니까?! – arash

0

내가이 검색 순간까지 부자가 제공하는 직접적인 해결책이없는 한 : 구성 요소가 풍부한 같은 itemValue을 가지고하지 않는 :

을 선택 또한이 해결 솔루션이 있습니다.

  1. 는 숨겨진 필드에 선택한 항목의 id 값을 추가 한 다음

  2. 내가 ITEM_ID을 CONCAT하는 fetchValue 속성을 사용 선택한 항목을 식별하려면이 숨겨진 필드를 사용하여 자바 스크립트를 사용하는 - item_name
    다음으로, 선택한 항목을 으로 식별하는 item_id를 부분 문자열로 변환하는 변환기를 만들었습니다.

답장을 보내
관련 문제