P:selectOneRadio

7 respostas
P

Boa tarde pessoal, estou com uma dificulade de chamar um metodo no meu managedBean quando clicar em um radioButton do primeFaces.
Eu Fiz assim:

<h:panelGrid columns="2">
			<h3>Endereço de Combrança</h3>
				<p:selectOneRadio value="#{propostaCadastroMB.enderecoCobranca}">
					<f:selectItem itemLabel="O mesmo endereço" itemValue="0"/>
					<f:selectItem itemLabel="Outro" itemValue="1"/>
					<p:ajax listener="#{propostaCadastroMB.mostraOutroEndereco}" update="endCombranca" event="change"/>
				</p:selectOneRadio>
			</h:panelGrid>

Fico no aguardo de alguma ajuda.

7 Respostas

A

qual dificuldade?

P

A dificuldade é que quando eu clico em algum item do radioButon ele não executa o listener, porque se ele selecionar o radioButton outro vai aparecer um campo novo na tela.

A

não está dando nenhum erro?

poder ser que vc não criou um converter para seu componente.

t+

P

Porque tem que eu precisaria de um converter?
Só preciso chamar um metodo e mudar um valor boolean de false para true.

A

entao,

vc precisa converter o Objeto que é criado pelo JSF no selectItem para o tipo da variavel do seu value.

t+

P

como ficaria esse converter?
Minha variavel é um Integer, no selectItem eu estou passando 0 ou 1

A

segue o que vc deve fazer

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

@FacesConverter("IntegerConverter")
public class IntegerConverter implements Converter {
	
	@Override
	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
		return Integer.parseInt(arg2);
	}

	@Override
	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
		return String.valueOf(arg2);
	}
}
<p:selectOneRadio value="#{propostaCadastroMB.enderecoCobranca}" converter="IntegerConverter">  
                <f:selectItem itemLabel="O mesmo endereço" itemValue="0"/>  
                <f:selectItem itemLabel="Outro" itemValue="1"/>  
                <p:ajax listener="#{propostaCadastroMB.mostraOutroEndereco}" update="endCombranca" event="change"/>  
            </p:selectOneRadio>

t+

Criado 29 de outubro de 2011
Ultima resposta 31 de out. de 2011
Respostas 7
Participantes 2