2014-05-19 9 views
0

OpenFaces SuggestionField에 문제점이 있습니다.OpenFaces SuggestionField가 서버 측 이벤트를 트리거하지 않습니다.

SuggestionField가있는 사이트를 생성하고 suggestionMode를 "custom"로 설정했습니다. 그런 다음 모든 항목을 표시하도록되어있는 dropDownItems 하위 태그를 추가했습니다.

글쎄, 내 문제입니다. 데이터베이스에 20k 개 이상의 항목이 있기 때문에 드롭 다운 항목이 비어 있으며 사용자가 필드에 내용을 입력하기 시작하면 미리 필터링 된 항목으로 채워야합니다. . 방법은 -

<o:suggestionField id="adr" value="#{addressBean.selectedAddressString}" suggestionMode="custom" valueChangeListener="#{addressBean.valueChanged}"> 
    <f:ajax event="change" execute="adr" render="region x y"></f:ajax> 
    <o:dropDownItems value="#{addressBean.addressStrings}"/> 
</o:suggestionField> 

public List<String> getAddressStrings() { 
    String filter = Faces.var("searchString", String.class); 
    logger.debug(filter); 
    return filter(filter); 
} 

필터 방법 헤더 :

그러나,이 방법은 결코 트리거하지 ... 여기

은 필드의 코드와 백킹 빈에서 영향을받는 방법은
private List<String> filter(String filter); 

this 사이트에 따르면 "사용자 지정"모드는 서버에 ajax 요청을 보내야합니다. 나는 적어도이 트리거됩니다 기대로

내가 valueChangeListener 속성을 추가했지만 두 나도 거기에 문제가있다면, 또는 뭔가 ... 어쨌든

를 매우 잘못된 것입니다, 여기에이 방법의 코드입니다

: 내가 거기에 모든 구성 요소의 다른 버전의 톤 아마도 솔루션은 각각 다를 수 있음을 알다시피

public void valueChanged(ValueChangeEvent vce){ 
    logger.debug("something changed "+vce.getNewValue()); 
} 

을 (참, 그냥 ;-) 로그인 않음), 여기 내가 사용하는 버전은

  • OS : 윈도우 7
  • 서버 : 톰캣 7.0.42
  • 자바 : 1.7.0_51
  • JSF : 2.2 (인 Mojarra 2.2)
  • OpenFaces : 3.1.EA1.1287

모든 대답은 감사합니다. 미리 감사드립니다. :-)

답변

0

글쎄, 내 문제를 발견했다.

Openfaces 3.x (현재 야간 빌드 포함)는 입니다.과 JSF 2.2 (또는 2.2.6 이상)가 완전히 호환되지 않습니다. nightly-doc은 현재 2.1.11과 호환됩니다.

비 호환성 증상 중 하나는 suggestionfield가 서버 쪽 이벤트를 트리거하지 않는다는 것입니다.

관련 문제