JSF 2.0 + primefaces Label e Mask dinamicamente

Ola amigos,
existe como eu alterar o label e a mascara dinamicamente ? exemplo:

possuo um campo inputText, este campo tem uma mascara, só que conforme for esse valor eu mudaria a mascara e o label é possivel exemplo:

<h:outputLabel for=“cnpj” value=“CNPJ:” styleClass=“labelCnpj”></h:outputLabel>
<p:inputMask id=“cnpj” value="#{pessoaController.cnpj}" mask=“99.999.999/9999-99” readonly=“true” styleClass=“campos2” size=“20” maxlength=“20”/>

gostaria de alterar o label value=“CNPJ:” para value=“CPF:” e a mascara mask=“99.999.999/9999-99” para mask=“999.999.999-99” em tempo de execução é possivel ? a algo que possa ser feito no BeanController ?

já resolveu o problema ?
tenho uma solução aqui.
bom da forma que voce quer eu fiz para aparecia não tem muito problemas, o problema aparece no ato de validar e tals.
e a melhor forma foi fazer um campo para cada, e inquanto selecionar um o outro estará desativado, e assim não validara, nesse contexto que passei.
bom segue para outro que necessitar. poisisso procurei muito e não encontrei
apanhei muito fiz de várias forma e tinhas alguns bugs mas essa foi a melhor que consegui e eficaz no meu contexto…
vamos ao código:


                        <h:outputLabel value="INSERIR:" />
                        <h:selectOneRadio id="cpf-cnpj" value="#{seuMB.campoBooleanControle}"
                                             title="Selecione qual item deseja inserir CNPJ ou CPF.">
                            <f:selectItem itemLabel="CNPJ" itemValue="#{true}"/>
                            <f:selectItem itemLabel="CPF" itemValue="#{false}"/>
                            <p:ajax update="CNPJ, CPF" event="change" />
                        </h:selectOneRadio>
                        <h:outputText />

                        <h:outputLabel value="CNPJ:" />
                        <p:inputMask id="CNPJ"   size="20" mask="99.999.999/9999-99" 
                                     disabled="#{seuMB.campoBooleanControle ? false : true}"
                                     required="true" requiredMessage="Campo obrigatório não preenchido"
                                     title="CNPJ se houver.">
                            <!--                                        <f:validator validatorId="ValidadorCNPJ" />-->
                        </p:inputMask>
                        <p:message for="CNPJ" />

                        <h:outputLabel value="CPF:" />
                        <p:inputMask  id="CPF"   size="20" mask="999.999.999-99"
                                     disabled="#{!seuMB.campoBooleanControle ? false : true}"
                                     required="true" requiredMessage="Campo obrigatório não preenchido"
                                     title="CPF se houver.">
                            <!--                                        <f:validator validatorId="ValidadorCPF" />-->
                        </p:inputMask>
                        <p:message for="CPF" />

la no seuMB, cria um campo para controle. e pronto…

1 curtida

Ja havia resolvido brother, isso foi no ano passado hehehehe, mas blz vale a intenção de vir aqui postar, na verdade eu que esqueci de postar a solução aqui, mas a solução que dei é muito semelhante a sua que não me lembro agora, thanks.

que isso sou novo por aqui mas a intenção é ajudar, pelo que vi você trabalha com JSF, será que consegue me da uma força nesse problema
http://guj.com.br/java/229351-mais-de-um-atributo-no-value-jsf-20
se tiver um tempo. Obrigado.

[quote=redthi]já resolveu o problema ?
tenho uma solução aqui.
bom da forma que voce quer eu fiz para aparecia não tem muito problemas, o problema aparece no ato de validar e tals.
e a melhor forma foi fazer um campo para cada, e inquanto selecionar um o outro estará desativado, e assim não validara, nesse contexto que passei.
bom segue para outro que necessitar. poisisso procurei muito e não encontrei
apanhei muito fiz de várias forma e tinhas alguns bugs mas essa foi a melhor que consegui e eficaz no meu contexto…
vamos ao código:


                        <h:outputLabel value="INSERIR:" />
                        <h:selectOneRadio id="cpf-cnpj" value="#{seuMB.campoBooleanControle}"
                                             title="Selecione qual item deseja inserir CNPJ ou CPF.">
                            <f:selectItem itemLabel="CNPJ" itemValue="#{true}"/>
                            <f:selectItem itemLabel="CPF" itemValue="#{false}"/>
                            <p:ajax update="CNPJ, CPF" event="change" />
                        </h:selectOneRadio>
                        <h:outputText />

                        <h:outputLabel value="CNPJ:" />
                        <p:inputMask id="CNPJ"   size="20" mask="99.999.999/9999-99" 
                                     disabled="#{seuMB.campoBooleanControle ? false : true}"
                                     required="true" requiredMessage="Campo obrigatório não preenchido"
                                     title="CNPJ se houver.">
                            <!--                                        <f:validator validatorId="ValidadorCNPJ" />-->
                        </p:inputMask>
                        <p:message for="CNPJ" />

                        <h:outputLabel value="CPF:" />
                        <p:inputMask  id="CPF"   size="20" mask="999.999.999-99"
                                     disabled="#{!seuMB.campoBooleanControle ? false : true}"
                                     required="true" requiredMessage="Campo obrigatório não preenchido"
                                     title="CPF se houver.">
                            <!--                                        <f:validator validatorId="ValidadorCPF" />-->
                        </p:inputMask>
                        <p:message for="CPF" />

la no seuMB, cria um campo para controle. e pronto…[/quote]

[quote=redthi]já resolveu o problema ?
tenho uma solução aqui.
bom da forma que voce quer eu fiz para aparecia não tem muito problemas, o problema aparece no ato de validar e tals.
e a melhor forma foi fazer um campo para cada, e inquanto selecionar um o outro estará desativado, e assim não validara, nesse contexto que passei.
bom segue para outro que necessitar. poisisso procurei muito e não encontrei
apanhei muito fiz de várias forma e tinhas alguns bugs mas essa foi a melhor que consegui e eficaz no meu contexto…
vamos ao código:


                        <h:outputLabel value="INSERIR:" />
                        <h:selectOneRadio id="cpf-cnpj" value="#{seuMB.campoBooleanControle}"
                                             title="Selecione qual item deseja inserir CNPJ ou CPF.">
                            <f:selectItem itemLabel="CNPJ" itemValue="#{true}"/>
                            <f:selectItem itemLabel="CPF" itemValue="#{false}"/>
                            <p:ajax update="CNPJ, CPF" event="change" />
                        </h:selectOneRadio>
                        <h:outputText />

                        <h:outputLabel value="CNPJ:" />
                        <p:inputMask id="CNPJ"   size="20" mask="99.999.999/9999-99" 
                                     disabled="#{seuMB.campoBooleanControle ? false : true}"
                                     required="true" requiredMessage="Campo obrigatório não preenchido"
                                     title="CNPJ se houver.">
                            <!--                                        <f:validator validatorId="ValidadorCNPJ" />-->
                        </p:inputMask>
                        <p:message for="CNPJ" />

                        <h:outputLabel value="CPF:" />
                        <p:inputMask  id="CPF"   size="20" mask="999.999.999-99"
                                     disabled="#{!seuMB.campoBooleanControle ? false : true}"
                                     required="true" requiredMessage="Campo obrigatório não preenchido"
                                     title="CPF se houver.">
                            <!--                                        <f:validator validatorId="ValidadorCPF" />-->
                        </p:inputMask>
                        <p:message for="CPF" />

la no seuMB, cria um campo para controle. e pronto…[/quote]

[quote=redthi]já resolveu o problema ?
tenho uma solução aqui.
bom da forma que voce quer eu fiz para aparecia não tem muito problemas, o problema aparece no ato de validar e tals.
e a melhor forma foi fazer um campo para cada, e inquanto selecionar um o outro estará desativado, e assim não validara, nesse contexto que passei.
bom segue para outro que necessitar. poisisso procurei muito e não encontrei
apanhei muito fiz de várias forma e tinhas alguns bugs mas essa foi a melhor que consegui e eficaz no meu contexto…
vamos ao código:


                        <h:outputLabel value="INSERIR:" />
                        <h:selectOneRadio id="cpf-cnpj" value="#{seuMB.campoBooleanControle}"
                                             title="Selecione qual item deseja inserir CNPJ ou CPF.">
                            <f:selectItem itemLabel="CNPJ" itemValue="#{true}"/>
                            <f:selectItem itemLabel="CPF" itemValue="#{false}"/>
                            <p:ajax update="CNPJ, CPF" event="change" />
                        </h:selectOneRadio>
                        <h:outputText />

                        <h:outputLabel value="CNPJ:" />
                        <p:inputMask id="CNPJ"   size="20" mask="99.999.999/9999-99" 
                                     disabled="#{seuMB.campoBooleanControle ? false : true}"
                                     required="true" requiredMessage="Campo obrigatório não preenchido"
                                     title="CNPJ se houver.">
                            <!--                                        <f:validator validatorId="ValidadorCNPJ" />-->
                        </p:inputMask>
                        <p:message for="CNPJ" />

                        <h:outputLabel value="CPF:" />
                        <p:inputMask  id="CPF"   size="20" mask="999.999.999-99"
                                     disabled="#{!seuMB.campoBooleanControle ? false : true}"
                                     required="true" requiredMessage="Campo obrigatório não preenchido"
                                     title="CPF se houver.">
                            <!--                                        <f:validator validatorId="ValidadorCPF" />-->
                        </p:inputMask>
                        <p:message for="CPF" />

la no seuMB, cria um campo para controle. e pronto…[/quote]
Amigo, estou tentando resolver esse mesmo tipo de problema, porém, com o seu código, ambos componentes inputMask ficam desabilitados, não dando a menor chance de escolha. Poderia me dar uma ajudazinha???
Obrigado

Da uma olhada:

http://www.webxml.com.br

http://safhira.webxml.com.br/safhira/

foram criados com PrimeFaces

Resolvi da seguinte forma.

					<p:outputLabel value="Tipo de documento:" for="tipoDocumento" />
					<p:selectOneMenu id="tipoDocumento"
						value="#{empresaBean.empresa.tipoDocumento}" required="true"
						requiredMessage="Selecione um tipo de documento.">
						<f:selectItem itemLabel="CNPJ" itemValue="J" />
						<f:selectItem itemLabel="CPF" itemValue="F" />
						<p:ajax update="cnpj,cnpjLabel"/>
					</p:selectOneMenu>

					<p:outputLabel id="cnpjLabel" value="#{empresaBean.empresa.tipoDocumento == 'J'? 'CNPJ:' : 'CPF:'}" for="cnpj" />
					<p:inputMask id="cnpj" mask="#{empresaBean.empresa.tipoDocumento == 'J'? '99.999.999/9999-99' : '999.999.999-99'}"
						value="#{empresaBean.empresa.cnpj}" required="true"
						requiredMessage="Informe o CNPJ." size="24"
						converter="tiraMascara" immediate="true" />

Aguem poderia me dar uma ajuda não estou sabendo fazer o Bean para controle dessas implementações do OneSelectRadio para CPF ou CNPJ.

Também não estou conseguindo desenvolver o bean. Poderia nos ajudar?