Erro JSF - h:selectOneRadio - Erro de Validação

Olá Pessoal !

Eu estou usando JSF 1.1 na minha aplicação web .

E há um erro quando eu uso o h:selectOneRadio que dá a seguinte mensagem.

"Erro de Validação " … “O valor não é uma opção válida”.

Para a construção f:selectItems eu uso ArrayList

Inicialmente eu pensei que o erro era gerado pq o ArrayList carregava null, mas acho que não é isso.

Qual poderia ser o erro ?

Obrigado pela atenção

Posta o código, do action e do jsp! Manda tb a excessão toda.

Hum, pelo que vc diz, eu chutaria instanciar o array. Sei lá.

CintiaDR,

eu andei vasculhando a Internet e pelo que entendi o erro no h:selectOneRadio é motivado por não haver nenhum item sendo selecionado após eu disparar um action, o que é estranho

Codigo do JSP:

<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://richfaces.ajax4jsf.org/rich” prefix=“rich”%>
<%@ taglib uri=“https://ajax4jsf.dev.java.net/ajax” prefix=“a4j”%>
<%@ taglib tagdir="/WEB-INF/tags/global" prefix=“global”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

<f:view>

	<table>
		<tr>
		<td width=100% height=100%>
		<td><h:messages layout="table" globalOnly="true"
				showDetail="true" infoClass="info" errorClass="error" /></td>
		
		<h:form id="form1" >
		<h:panelGrid id="panel1" columns="3" align="center" cellspacing="30"  >
		<h:panelGroup>	
		<h:outputLabel  value="Lista de Consolidadores do RG:"  styleClass="tableHeader" />					
			<h:selectOneRadio id="gender"  layout="pageDirection" value="#{usuarioItemBean.usuarioSelecionado}" immediate="true">
			<f:selectItems value="#{usuarioItemBean.listaUsuariosUnSelectedCliente}" />
				<f:verbatim>
					<br></br>
				</f:verbatim>

			</h:selectOneRadio>
		</h:panelGroup>
		
		<h:panelGroup>
			<f:verbatim>
					<br></br>
				</f:verbatim>
			<h:commandButton value="->" action="#{usuarioItemBean.associa}" size="15" immediate="true"/> 
			<f:verbatim>
					<br></br>
				</f:verbatim>
			 <h:commandButton value="<-" action="#{usuarioItemBean.remove}" size="15" immediate="true"/>
		</h:panelGroup>

		<h:panelGroup>	
		<h:outputLabel  value="Relator Associado a Item:"  styleClass="tableHeader" />					
			<h:selectOneRadio id="gender2"  layout="pageDirection" value="#{usuarioItemBean.usuarioAssociado}" immediate="true">
			<f:selectItems value="#{usuarioItemBean.listaUsuariosSelectedCliente}" />
				<f:verbatim>
					<br></br>
				</f:verbatim>

			</h:selectOneRadio>
		</h:panelGroup>
		</h:panelGrid>	
		

	</h:form>
	<td>
		<h:messages id="errorMessages" showDetail="true"/> 
		</td>
		</tr>
	</table>

Não tenho muita certeza (até porque sou super novata), mas acho que usuarioItemBean.usuarioSelecionado é uma string e usuarioItemBean.listaUsuariosUnSelectedCliente um array de strings.

Vc pode tirar este “br” de dentro do select… Porque vc está usando o immediate?

CintiaDR,

usuarioItemBean.listaUsuariosUnSelectedCliente não pode ser array de strings ?

Até onde me consta, é para ser. Poste estes pedaços do seu bean.

Trecho do Bean:

if (usuarioItem != null){
Usuario usItem = usuarioItem.getUsuario();
SelectItem item = new SelectItem(usItem.getId(), usItem.getNome());
this.getListaUsuariosSelectedCliente().add(item);
}

if (! usuarioItem.getUsuario().getId().equals(usIter.getId())) {
SelectItem item = new SelectItem(usIter.getId(), usIter.getNome());
this.getListaUsuariosUnSelectedCliente().add(item);
}