selectItems nãoretorna dados

8 respostas
java
D

Amigos estou tentando recuperar algumas informaçoes para colocar na seleção não está chegando nem na eu controle, alguém pode da uma força

segue trechos abaixo

<p:outputLabel value="Setor" for="idSetores" /> <p:selectOneMenu id="idSetores" value="#{controleSos.pesquisaSos.sSetor}"> <f:selectItem itemLabel="Selecione" itemValue="" /> <f:selectItems value="#{controleSos.listSetores}" var="setor" itemLabel="#{setor.nome}" itemValue="#{setor.setor}"/> </p:selectOneMenu>

`

import java.io.Serializable;

import java.util.ArrayList;

import java.util.List;
import javax.faces.view.ViewScoped;

import javax.inject.Inject;

import javax.inject.Named;
import com.montreal.gestaosos.excecoes.DaoException;

import com.montreal.gestaosos.model.PesquisaSOS;

import com.montreal.gestaosos.model.RelatorioSos;

import com.montreal.gestaosos.model.Setores;

import com.montreal.gestaosos.service.GestaoSos;

@Named
@ViewScoped
public class ControleSos implements Serializable {

private static final long serialVersionUID = 1L;
private List<RelatorioSos> listSos = new ArrayList<RelatorioSos>();
private List<Setores> listSetores = new ArrayList<Setores>();

@Inject
private GestaoSos gestaoSos;

private Setores setores = new Setores();
private RelatorioSos relatorioSos = new RelatorioSos();
private PesquisaSOS pesquisaSos = new PesquisaSOS();

public List<RelatorioSos> pesquisaSos() {

	System.out.println("chegou!!");
	
	return listSos;
}

public List<Setores> buscaSetores() {

	try {
		System.out.println("chegou!!");
		listSetores = gestaoSos.sPesquisaSetores();
		
	} catch (DaoException e) {
		e.printStackTrace();
	}

	return listSetores;
}

public Setores getSetores() {
	return setores;
}

public void setSetores(Setores setores) {
	this.setores = setores;
}

public RelatorioSos getRelatorioSos() {
	return relatorioSos;
}

public void setRelatorioSos(RelatorioSos relatorioSos) {
	this.relatorioSos = relatorioSos;
}

public PesquisaSOS getPesquisaSos() {
	return pesquisaSos;
}

public void setPesquisaSos(PesquisaSOS pesquisaSos) {
	this.pesquisaSos = pesquisaSos;
}

public List<Setores> getlistSetores() {
	return listSetores;
}`

8 Respostas

D

Acho q falta a annotation antes do viewscope

@ManagedBean(name="controleSos", eager = true)
@ViewScoped

se não der certo, teste:

@ManagedBean(name="controleSos", eager = true)
@SessionScoped

Use preferencialmente as annotation para mapear os ManagedBean, evite usar o XML

http://www.tutorialspoint.com/jsf/jsf_managed_beans.htm

lucciano01

`no ControleSos:

private List< SelectItem> selectItensSetores;

public List< SelectItem> getSelectItenSetores ( ){

if( selectItensSetores == null){
selectItensSetores = new ArrayList< SelectItem>();

for( Setores s : buscaSetores( ){

selectItensSetores.add( new SelectItem ( s.nome, s.setor);

}
}

return   selectItensSetores;

}

na página:

< f:selectItems value="#{controleSos.selectItensSetores}" />

não esqueça de fazer o converter para o selectItem

`

D

Luciano fiz do jeito que explicou porém continua sem vim dado nenhum
ele deveria pelo menos chegar la na outra classe ou não?
para degub

<p:outputLabel value="Setor" for="idSetores" /> <p:selectOneMenu id="idSetores" value="#{controleSos.pesquisaSos.sSetor}"> <f:selectItem itemLabel="Selecione" itemValue="" /> <f:selectItems value="#{controleSos.selectItensSetores}" /> </p:selectOneMenu>

` public List getSelectItenSetores() {

if (selectItensSetores == null) {
		selectItensSetores = new ArrayList<SelectItem>();

		for (Setores s : buscaSetores() ) {
			selectItensSetores.add(new SelectItem( s.getNome(), s.getSetor() ));
		}

	}
	return selectItensSetores;
}
`
lucciano01

verifique se o método buscaSetores( ) não está trazendo a lista vazia

D

está não já testei via main, tem outro detalhe quando coloquei a variavel no xhtml ele não reconheceu ai criei um método get para o selectItensSetores ai não deu erro mais tbm não chamou nada

lucciano01
`for (Setores s : buscaSetores() ) {

System.out.println( Nome: + s.getNome( ));

System.out.println( Setor: + s.geSetor( ));

selectItensSetores.add(new SelectItem( s.getNome(), s.getSetor() ));

}

veja no console do servidor se está imprimindo os valores
`

D

dessa forma aki trouxe, estou achando que é a forma que estou chamando que está incorreta

`package com.montreal.gestaosos.controller;

import java.io.Serializable;

import java.util.ArrayList;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.model.SelectItem;

import com.montreal.gestaosos.excecoes.DaoException;

import com.montreal.gestaosos.model.PesquisaSOS;

import com.montreal.gestaosos.model.RelatorioSos;

import com.montreal.gestaosos.model.Setores;

import com.montreal.gestaosos.service.GestaoSos;

@ManagedBean
public class ControleSos implements Serializable {

private static final long serialVersionUID = 1L;
private List<RelatorioSos> listSos = new ArrayList<RelatorioSos>();
private List<Setores> listSetores = new ArrayList<Setores>();

private List<SelectItem> selectItensSetores;



private GestaoSos gestaoSos;

private Setores setores = new Setores();
private RelatorioSos relatorioSos = new RelatorioSos();
private PesquisaSOS pesquisaSos = new PesquisaSOS();

public static void main(String[] args) {
	ControleSos sos = new ControleSos();
	sos.getSelectItenSetores();
}

public List<SelectItem> getSelectItenSetores() {

	if (selectItensSetores == null) {
		selectItensSetores = new ArrayList<SelectItem>();

		for (Setores s : buscaSetores() ) {
			System.out.println( "Nome:" + s.getNome( ));
			System.out.println( "Setor:" + s.getSetor( ));
			selectItensSetores.add(new SelectItem( s.getNome(), s.getSetor() ));
		}

	}
	return selectItensSetores;
}


public List<RelatorioSos> pesquisaSos() {

	System.out.println("chegou!!");
	
	return listSos;
}

public List<Setores> buscaSetores() {

	gestaoSos = new GestaoSos();
	try {
		System.out.println("chegou!!");
		listSetores = gestaoSos.sPesquisaSetores();
		
	} catch (DaoException e) {
		e.printStackTrace();
	}

	return listSetores;
}

public Setores getSetores() {
	return setores;
}

public void setSetores(Setores setores) {
	this.setores = setores;
}

public RelatorioSos getRelatorioSos() {
	return relatorioSos;
}

public void setRelatorioSos(RelatorioSos relatorioSos) {
	this.relatorioSos = relatorioSos;
}

public PesquisaSOS getPesquisaSos() {
	return pesquisaSos;
}

public void setPesquisaSos(PesquisaSOS pesquisaSos) {
	this.pesquisaSos = pesquisaSos;
}

public List<Setores> getlistSetores() {
	return listSetores;
}

public List<Setores> getselectItensSetores() {
	return listSetores;
}

}
`

D

Luciano funcionou estava retornando a lista ao inves do método muito obrigado.

Criado 2 de abril de 2016
Ultima resposta 3 de abr. de 2016
Respostas 8
Participantes 3