Então pessoal queria saber como recuperar o valor selecionado de um selectOneMenu no jsf. Ja vi os exemplos entendi como funciona mas… não funciona. <h:selectOneMenu id="cidade" value="#{userBack.uiCidade}" >
<f:selectItem itemValue="MAU" itemLabel="Mauá"/>
<f:selectItem itemValue="UBE" itemLabel="Uberaba"/>
</h:selectOneMenu>
Esses dados são estaticos, mas consigo popula-lo com dados do banco. Acho que meu problema esta com o tipo de variavel que estou usando no value do selectOneMenu. Tentei uma variavel string e uioutput como value mas não deu certo.
Uma ajuda, pq nada deu certo até agora. Preciso que está variavel esteja com o valor selecionado sempre que qualquer ação for acionada.
Obrigado!
O seu atributo uiCidade vai receber o valor que ver do itemValue do item selecionado.
tipo:
se escolher “Mauá” -> uiCidade = MAU
se escolher “Uberaba” -> uiCidade = UBE
O seu atributo uiCidade vai receber o valor que ver do itemValue do item selecionado.
tipo:
se escolher “Mauá” -> uiCidade = MAU
se escolher “Uberaba” -> uiCidade = UBE
defina como String o atributo e tenta aí…[/quote]
Então eu ja tentei uiCidade como String só que ele me retorna o endereço do objeto: javax.faces.component.html.HtmlOutputText@1258eb3.
Quem puder ajudar agradeço, ta dificil empacado em um erro besta desses.
Obrigado.
[quote=romarcio][quote=snoop][quote=romarcio]A maneira que você fez está correta.
O problema pode estar na sua classe, posta ela ai, com o método que insert.[/quote]
É só uma String com os métodos get e set associada ao value.
Não tenho a menor ideia do que está errado.
[code]
private String uiCidade;
//segue algumas outras variaveis então vem os getters e os setters…
/**
* @return the cidade
*/
public String getUiCidade() {
return uiCidade;
}
/**
* @param cidade the cidade to set
*/
public void setUiCidade(String cidade){
this.uiCidade = uiCidade;
}[/code][/quote]
Ao invés de usar uiCidade, tentou usar cidade ? e userBack é mesmo o nome do seu Bean ?[/quote]
Pior que ja tentei só cidade, sempre retorna aquele valor doido.
Meu userBack está ok ele funciona em outras partes da aplicação sem problemas.
Como eu disse ele me retorna um valor, só que não o valor selecionado na combobox.
Se não for abusar da boa vontade, vc poderia me mandar um exemplo completo? Eu coloco ele na minha aplicação e vejo se funciona, acho que ja fica mais facil para achar o problema.
Obrigado.
private int idTurno = 0;
public int getIdTurno() {
return idTurno;
}
public void setIdTurno(int idTurno) {
this.idTurno = idTurno;
}
[/code]
Dai tem que ver como é seu método insert. Mas seria passar o idTurno nesse caso, tipo um setInt(idTurno) ou algo do tipo.
Mas veja, tenho a classe Mensagens, mapeada no faces-config e o mensagens eu utilizo no value do selectOneMenu. A diferença é que utilizei int e não string, mas para o bean não é relevante esse fato.
Muito obrigado Romarcio, o erro está em usar um tipo String no itemValue. Eu estava usando os códigos: (“MAU”, “UBE”, “ITA”). Usando os valores 1, 2, 3, funcionou na hora. Ninguem havia me chamado a atenção para este detalhe, mas com o seu exemplo só foi comparar o que havia de diferente, ja que o seu funcionou.
Valew.
Salve pessoal, retornando a vida de post. Estou com o seguinte problema, tenho um selectonemenu sendo populado com dados do banco, até ae tudo certo, na hora de salvar o meu cadastro de cidade, com o usuario selecionando o estado o select…, apresenta o seguinte erro:
Erro de conversão ao definir o valor ‘1’ para ‘null Converter’. Erro de conversão ao definir o valor ‘1’ para ‘null Converter’.
meu bean esta desta forma:
package br.com.webgi.bean;
import br.com.webgi.DAO.DAOGenerico;
import javax.faces.bean.*;
import br.com.webgi.entidade.Cidade;
import br.com.webgi.entidade.Estado;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
@ManagedBean(name="cidadeBean")
@RequestScoped
public class cidadeBean {
Cidade cidade = new Cidade();
Estado estado = new Estado();
private List<Estado> list;
public String insere()
{
DAOGenerico obj_cidadeDAO = new DAOGenerico(cidade);
obj_cidadeDAO.insere();
return "cadastrado";
}
public Cidade getCidade() {
return cidade;
}
public void setCidade(Cidade cidade) {
this.cidade = cidade;
}
public Estado getEstado() {
return estado;
}
private long idEstado;
public void setEstado(long idEstadoTela) {
this.idEstado = idEstadoTela;
}
public List<SelectItem> getEstados() {
DAOGenerico obj_estadoDAO = new DAOGenerico(estado);
ArrayList<SelectItem> itens = new ArrayList<SelectItem>();
List<Estado> resultado = obj_estadoDAO.find();
for (Estado e : resultado)
itens.add(new SelectItem(e.getIdEstado(), e.getNomeEstado()));
return itens;
}
}