2012-07-10 6 views
2

다른 게시물에서이 문제에 대한 해결책을 찾을 수 없으므로 여기에 문제가 있습니다. (사전에 Mojarra 구현의 JSF 2와 JBoss 7.1 AS의 Primefaces 3.2를 사용합니다)런타임에 컴파일 타임에 알지 못하는 JSF 컴포넌트를 추가하십시오.

런타임 중에 동적으로 생성되어야하는 검색 마스크를 구축 중입니다. 다른 게시물에서 dataTable을 사용해야한다는 것을 알고 있습니다. 그것이 내가 할 일이다.

그러나 search-mask는 검색 기준 (예 : 이름, 생일, ...), 연산자 (범위가 크지 않음, 범위보다 크다 ...)와 피연산자 (사용자가 검색 입력으로 제공 할 것임).

목표는 검색 마스크를 동적으로 생성하는 것입니다.하지만 입력 필드의 유형은 사용자가 선택한 기준 + 연산자에 따라 달라집니다.

그래서 사용자가 조건을 선택하면 드롭 다운 상자에서 "name"및 연산자 : "is not"를 선택하면 피연산자의 입력 필드는 단순한 p : inputText 여야합니다.

그러나 사용자가 기준 "birthday"및 연산자 : "before"를 선택한 경우 입력 필드는 p : calendar와 같은 datepicker 여야합니다.

제 아이디어는 모든 개체가 h : selectOneMenu에서 조건 및 연산자를 사용하는 "SearchRow"개체 목록에 대해 p : dataTable을 사용하는 것이 었습니다.

그런 다음 selectMenues에 valueChangeListener를 추가합니다. 거기에서 입력 필드로 필요한 UIComponent의 올바른 유형을 계산하고 만듭니다.

그러나 UICOmponent를 dataTable의 세 번째 열로 추가하는 방법을 알지 못합니다.

내 생각에 어떤 좋은 점이 있으며 내 문제를 해결하는 방법이 있습니까?

미리 감사드립니다.

답변

1

설명 된 문제와 동일한 해결책 here. @BalusC의 article은 빈에서 구성 요소를 추가하는 방법을 매우 잘 설명합니다.

관련 문제