I want to make an outputtext that is appearing according to a value of checkbox; here is my code:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<body>
<ui:composition template="../WEB-INF/templates/template.xhtml">
<ui:define name="content">
<h:form id="formModifClt">
<h:outputText value="voulez-vous modifier cette image ?"/>
<h:selectBooleanCheckbox value="#{clientController.modifierImage}" >
<f:ajax event="click" listener="#{clientController.onChangeCheckBox()}" render="textPanel" />
</h:selectBooleanCheckbox>
<p:outputPanel id="textPanel" autoUpdate="true" >
<h:outputText value="Oui" rendered="#{clientController.modifierImage}" />
<h:outputText value="Non" rendered="#{!clientController.modifierImage}" />
</p:outputPanel>
<p:outputPanel autoUpdate="true" >
<h:outputText value="Logo" rendered="#{clientController.modifierImage}" id="logo" />
<p:fileUpload id="up" fileUploadListener="#{fileUploadController.handleFileUpload}"
mode="advanced"
sizeLimit="100000"
required="true"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/" rendered="#{clientController.modifierImage}"/>
</p:outputPanel>
<p:commandButton action="#{clientController.modifClient()}" value="Modifier" ajax="false"/>
</h:form>
</ui:define>
</ui:composition>
</body>
my problem is that the first time the user click on checkbox the value is not changing and the onChangeCheckBox() is not wroking. Starting with the second time, it works fine. NB: I don't want to do it in javascript because I have other treatments done according to boolean checkbox.
here is my controller:
public void onChangeCheckBox () {
System.out.println("modifierImage="+modifierImage);
}
/**
* @return the modifierImage
*/
public boolean isModifierImage() {
return modifierImage;
}
/**
* @param modifierImage the modifierImage to set
*/
public void setModifierImage(boolean modifierImage) {
this.modifierImage = modifierImage;
}
with the solution of balusC is better (it does not give a chcked checkButton when it is clicked on the first time) but the problem still exists !