버튼이 있습니다. 이 버튼을 누르면 체크 박스가 렌더링됩니다.
이것은 물론 잘 작동합니다. 체크 박스는 변경된 함수를 호출해야하는데, 이는 단지 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;
}
}