2014-09-02 3 views
0

버튼이 있습니다. 이 버튼을 누르면 체크 박스가 렌더링됩니다.
이것은 물론 잘 작동합니다. 체크 박스는 변경된 함수를 호출해야하는데, 이는 단지 System.out.println() 일 것입니다. 그래서이 함수가 호출 된 것을 볼 수 있습니다.
문제는 재검색이 필요없는 단순한 체크 박스 기능입니다. 그러나 a4j:support이 다시 렌더링되면 작동하지 않습니다. 은 호출되지 않습니다.a4j : reRender의 지원이 작동하지 않습니다.

이것은 매우 쉽게 보이지만 전혀 작동하지 않는 이유를 알지 못합니다.
힌트/트릭이 있습니까?

이것은 이전 환경이므로 JSF 1.2에만 해당됩니다.

내 XHTML

 <s:div id="sdBoolCheckboxtest"> 
     #{testController.testRerenderBool} 
      <s:div id="sdRerender" rendered="#{testController.testRerenderBool}"> 
       <h:selectBooleanCheckbox id="myscheckbox" value="#{testController.testBool}"> 
        <a4j:support ajaxSingle="true" event="onclick" immediate="true" 
         status="globalStatus" action="#{testController.testCheckbox()}" /> 
       </h:selectBooleanCheckbox> 
      </s:div> 
     </s:div> 
    </h:form> 

내 자바 클래스 :

먼저 내가 TestController@Scope(ScopeType.CONVERSATION) 추가 :

@Name("testController") 
@AutoCreate 
public class TestController { 

    private boolean testBool = false; 

    public boolean isTestRerenderBool() { 
     return testRerenderBool; 
    } 

    public void setTestRerenderBool(boolean testRerenderBool) { 
     this.testRerenderBool = testRerenderBool; 
    } 

    private boolean testRerenderBool; 

    public void switchtestRerenderBool(){ 
     System.out.println("switch"); 
     testRerenderBool = !testRerenderBool;  
    } 

    public void testCheckbox(){ 
     System.out.println("drin"); 
    } 

    public boolean isTestBool() { 
     return testBool; 
    } 

    public void setTestBool(boolean testBool) { 
     this.testBool = testBool; 
    } 
} 

답변

0

좋아, 나는 이러한 변화와 함께, 작업 있어요

@Name("testController") 
@AutoCreate 
@Scope(ScopeType.CONVERSATION) 
public class TestController { 
... 
} 

그리고 두 번째 변화로, 나는이 내 문제를 해결 <a4j:outputPanel

<a4j:outputPanel id="sdBoolCheckboxtest"> 

<s:div을 변경,하지만, 난 여전히 내가 @Scope(ScopeType.CONVERSATION) (필자는 A4J으로 힌트를 발견해야하는 이유 궁금하네요 : outputPanel here)

어떤 설명이 도움이 될 것입니다, 감사합니다!