Abri uma pagina para pesquisa e retorna o cod para pagina anterior

5 respostas
kennedi

Como faço para abri uma tela de pesquisa, onde vou clicar no resultado, e vai retorna para minha pagina anterior.

Seria um formulario de cadastro,

Ex: Cadastro de (Profissional) vou ter que abri uma tela de pesquisa com as especialidade, apos encontra quero
retorna o codigo da especialidade para um campo na pagina de cadastro do profissional.

Agradeço desde já.

Estou Utilizando JSF - JPA - EJB.

5 Respostas

ErickRAR

Pode abrir um dialog para receber a pesquisa e colocar update=“seuform” ao finalizar.

Hebert_Coelho

Esse post aqui não é com EJB, mas utiliza JSF e Primefaces e o cadastro é feito com Dialogs.

http://uaihebert.com/?p=1414

Tem o código fonte no final do post para realizar o download. [=

kennedi

Vou ter que mudar agora vou utilizar p:autoComplete so que ta dando erro no converter.

An Error Occurred:

Erro de expressão: Objeto denominado: TipoAparelho não encontrado.
+ Stack Trace

+ Component Tree

+ Scoped Variables

<p:autoComplete value="#{tipoDeficienciaBean.selectedPlayer1}" id="basicPojo" completeMethod="#{tipoDeficienciaBean.completePlayer(query)}"
                                var="p" itemLabel="#{p.nome}" itemValue="#{p}" converter="TipoAparelho" forceSelection="true"/>
TipoAparelhoConverte
public class TipoAparelhoConverter implements Converter {

    IRepositorioTipoAparelho repo;
    public static List<TipoAparelho> listagem;

    public List<TipoAparelho> getListagem() {
        if (listagem == null) {
            listagem = repo.listaTodos();
        }
        return listagem;
    }

    public void setListagem(List<TipoAparelho> listagem) {
        TipoAparelhoConverter.listagem = listagem;
    }

    @Override
    public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) {
        if (submittedValue.trim().equals("")) {
            return null;
        } else {
            try {
                int number = Integer.parseInt(submittedValue);

                for (TipoAparelho p : listagem) {
                    if (p.getId() == number) {
                        return p;
                    }
                }

            } catch (NumberFormatException exception) {
                throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid player"));
            }
        }

        return null;
    }

    @Override
    public String getAsString(FacesContext facesContext, UIComponent component, Object value) {
        if (value == null || value.equals("")) {
            return "";
        } else {
            return String.valueOf(((TipoAparelho) value).getId());
        }
    }
}
@Named(value = "tipoDeficienciaBean")
@RequestScoped
public class TipoDeficienciaBean implements Serializable {

    @EJB
    IRepositorioTipoDeficiencia repo;
    IRepositorioTipoAparelho repoTipoAparelho;
    private String codigo;
    private TipoAparelho aparelho;
    private Categoria categoria;
    private String descricao;
    private TipoAparelho selectedPlayer1;
    private List<TipoAparelho> players;
    private Iterable<TipoAparelho> playerDB;

    public void AutoCompleteBean() {
        players = TipoAparelhoConverter.listagem;
    }

    public TipoAparelho getSelectedPlayer1() {
        return selectedPlayer1;
    }

    public void setSelectedPlayer1(TipoAparelho selectedPlayer1) {
        this.selectedPlayer1 = selectedPlayer1;
    }

    public List<TipoAparelho> completePlayer(String query) {
        List<TipoAparelho> suggestions = new ArrayList<TipoAparelho>();

        for (TipoAparelho p : players) {
            if (p.getDescricao().startsWith(query)) {
                suggestions.add(p);
            }
        }

        return suggestions;
    }
...
ErickRAR

Você declarou seu converter no faces config? Ele fica dentro da basta WEB-INF Precisa fazer isso:

<converter>
   <converter-id>TipoAparelhoConverter</converter-id>
   <converter-class>seupacote.TipoAparelhoConverter</converter-class>
</converter>

Ah, acho legal colocar um busca no seu banco que seja feita através do id, assim não precisa pegar todos os TipoAparelho’s cadastrados.

kennedi

RESOLVIDO…

VLW GALERA,

Criado 24 de junho de 2012
Ultima resposta 28 de jun. de 2012
Respostas 5
Participantes 3