2016-11-20 1 views
0

에 selectOneRadio은 내가 간단한 JSF 2.2 페이지에서 작업하는 f:ajax 리스너를 얻을 수 없습니다. 값은 할당되지만 청취자는 청각 장애인입니다. 이상하게도, h:selectOneRadioh:selectOneMenu으로 대체하면 매우 똑같은 코드가 완벽하게 작동합니다.이상한 문제 : 아파치 Tomee 7.0.1

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:f="http://xmlns.jcp.org/jsf/core" 
     xmlns:h="http://xmlns.jcp.org/jsf/html"> 

<h:head> 
    <title>Test</title> 
</h:head> 
<h:body> 
    <h:form id="f" > 
    <h:selectOneRadio id="r" value="#{test.mode}"> 
     <f:selectItem itemValue="One"/> 
     <f:selectItem itemValue="Two"/> 
     <f:selectItem itemValue="Three"/> 
     <f:ajax render="@form" execute="@form" listener="#{test.listener2()}"/> 
    </h:selectOneRadio> 
    <br/> 
    <h:outputText id="out" value="#{test.mode}"/> 
    </h:form> 
</h:body> 
</html> 

와 콩 :

@Named 
@SessionScoped 
public class Test implements Serializable { 

    private final static Logger LOG = Logger.getLogger(Test.class.getName()); 

    private String mode; 

    public String getMode() { 
    return mode; 
    } 

    public void setMode(String mode) { 
    this.mode = mode; 
    LOG.info("Mode setter: " + mode); 
    } 

    public void listener1(AjaxBehaviorEvent event) throws AbortProcessingException { 
    LOG.info("Mode listener 1: " + mode); 
    } 

    public void listener2() { 
    LOG.info("Mode listener 2: " + mode); 
    } 

} 

청취자 방법의 유형 중 어느 것도이 h:selectOneRadio에 대한 해고 여기에 HTML입니다. bean을 @ManagedBean으로 만들고 다른 ajax 이벤트 유형을 사용하면 도움이되지 않습니다.

문제는 버전 7.0.1 (에서 MyFaces 2.2.10, JSF 2.2)에 아파치 Tomee의 업그레이드 후에 나타났다. MyFaces와 2.2.11의 동일한 문제.

웹 응용 프로그램은 귀 내부에 번들로 제공됩니다, 다른 JSF 라이브러리, 더 Primefaces를로드하지 않고 유사하다, 아니 서블릿 필터, 전혀 아무것도 - 순수 JSF 2.2 응용 프로그램입니다.

아이디어가 있으십니까? 에서 MyFaces에 버그가있어

+0

시도 : @Kukeltje는 차이가 없습니다 – Kukeltje

+0

ajax'는, 그들의 대부분을 테스트했다. – Osw

+0

죄송 합니다만, 이미 언급 한 내용을보고 싶었습니다 ... 죄송합니다 ... 그렇다면 올바르게 이해하면 listener1도 작동하지 않습니다 (xhtml에서 대괄호 제외)? 'h : messages'를 추가하면 어떤 정보입니까? 개발 모드에서 앱을 실행하면 어떻게됩니까? – Kukeltje

답변

2

는에서 MyFaces 2.2.12에서 해결 될 것입니다. 당신은 그들이 잘 작동하는 것 같다에서 MyFaces 스냅 샷을 사용, 즉각적인 솔루션을 필요로 하는가, 단지 myfaces-api-*myfaces-impl-*의 주식 버전 대신 Tomee의 lib 폴더에 놓으십시오. 은`F를 명시 적으로 이벤트를 추가

https://issues.apache.org/jira/browse/MYFACES-4068