2011-04-12 8 views
0

다음 코드 조각 제발 봐 :RichFaces Ajax (조건부) 렌더링 : HowTo?

<h:form> 
    <h:panelGrid columns="2"> 
     <h:inputText value="#{vehicleBean.pin}" /> 
     <a4j:commandButton action="#{vehicleBean.loadVehiclesByPin}" render="results"/> 
    </h:panelGrid> 
</h:form> 
<a4j:outputPanel id="results"> 
    <rich:dataTable value="#{vehicleBean.vehicles}" rendered="#{not empty vehicleBean.vehicles}"> 
     ... 
    </rich:dataTable> 
</a4j:outputPanel> 

을 나는 Ajax 요청이 일부 비즈니스 엔티티를로드 전송 버튼을 누르면. 해당 배열이 비어 있지 않은 경우에만 렌더링되는 rich : dataTable에 표시됩니다.

Chrome에서는 Firefox 4는 사용할 수 있지만 IE9에서는 사용할 수 없습니다. 하지만 그것은 내 잘못과의 확신하지 IE의 ;-)

그래서 내게 알려주십시오 :

  • 이런 종류의 문제를 해결하는 올바른 방법은 무엇인가 (조건부 렌더링 요소를)?
  • 어떤 요소를 다시 렌더링해야합니까?
  • commandButton에는 실행 특성도 있습니다.이 특성을 사용해야하는시기와 이유는 무엇입니까?

인사말 SEBI

답변

0
이 게시물을 참조, IE9를 지원하지 않습니다

RichFaces 3.x를 : http://community.jboss.org/thread/156720

당신은 RF 4, 로 업그레이드 또는 실행 IE9 강제로 필터를 구현할 수

호환 모드 :

public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException { 
    HttpServletResponse resp = (HttpServletResponse) response; 
    resp.addHeader("X-UA-Compatible", "IE=EmulateIE8"); 
    chain.doFilter(request, resp); 
} 
0

몇 가지 당신이 고칠 수 :

  1. loadVehiclesByPin 핀의 값에 의존하는 경우
  2. , 당신은 InputText]를 구성 요소 (여기에 ID를 할당, 예를 실행해야 폼 태그 서라운드 모든 JSF compontents하자 그런 명령 단추와 "inputPin") =
  3. "이 inputPin @"나는 당신이 올바른을 사용하는 경우에 = "결과"합니다 (NamespaceContainer 개념의 인식을 렌더링, 확실하지 않다 읽기, 실행 의 javadoc는 UIComponent.findComponent) 더 나은 디버깅을위한

, 내가 web.xml 파일에 PROJECT_STAGE = 개발을 활성화하고 자바 스크립트 콘솔 귀하의 브라우저를 열고하는 것이 좋습니다.

하는 조건부 렌더링을 사용하는 경우, 당신은 당신의 JSF 컴포넌트 트리의 ID에 매개 변수를 렌더링 당신을 가리 키도록해야한다는주의, 그

(당신이 패널 조건부 데이터 테이블 주변으로 여기 한)가 이미

안부