Render component after clicking button

0

I have a Yes / No button. I would like to click on Yes to render an element below. As the example in my page:

<?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:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>Cadastro</title>
</h:head>
<h:body>
    <h:form id="cadastrohabilidades">
        <p:panel>
            <p:messages />
            <h:panelGrid columns="3">
                <h:outputLabel value="Nome: " rendered="true" />
                <p:inputText id="nome" value="#{habilidademb.habilidade.nome}" size="20" />
                <p:message for="nome" />
                <h:outputLabel value="Descrição: " rendered="true" />
                <p:inputTextarea id="descricao" value="#{habilidademb.habilidade.descricao}" rows="6" cols="20" />
                <p:message for="descricao" />
                <h:outputLabel value="Possui efeito secundário? : " rendered="true" />
                <p:selectBooleanButton id="efeito" value="#{habilidademb.habilidadeHidden}" onLabel="Sim" offLabel="Não" style="width:60px" />
                <p:message for="efeito" />
                <h:outputLabel value="Efeito Secundário: " rendered="#{habilidademb.habilidadeHidden eq true}" />
                <p:inputTextarea id="secundario" value="#{habilidademb.habilidade.efeitoSecundario}" rows="6" cols="20" rendered="#{habilidademb.habilidadeHidden == true}" />
                <p:message for="secundario" />
            </h:panelGrid>
        </p:panel>
    </h:form>
</h:body>
</html>

As you can see, I put 2 components == true:

<h:outputLabel value="Efeito Secundário: " rendered="#{habilidademb.habilidadeHidden eq true}" />
                <p:inputTextarea id="secundario" value="#{habilidademb.habilidade.efeitoSecundario}" rows="6" cols="20" rendered="#{habilidademb.habilidadeHidden == true}" />

But it does not work, does anyone know how to do it?

    
asked by anonymous 20.05.2016 / 23:24

1 answer

1

Do so.

<h:form>
            <h:outputLabel value="Possui efeito secundário? : " rendered="true" />
            <p:selectBooleanButton id="efeito" value="#{habilidademb.habilidadeHidden}" onLabel="Sim" offLabel="Não" style="width:60px" >
                <p:ajax event="change" update="pnlEfeito" />
            </p:selectBooleanButton> 


            <h:panelGroup id="pnlEfeito">
                <p:message for="efeito" />
                <h:outputLabel value="Efeito Secundário: " rendered="#{habilidademb.habilidadeHidden eq true}" />
                <p:inputTextarea id="secundario" value="#{habilidademb.habilidade.efeitoSecundario}" rows="6" cols="20" rendered="#{habilidademb.habilidadeHidden == true}" />
            </h:panelGroup>

</h:form>
    
27.05.2016 / 16:43