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);
}