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

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.

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

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. [=

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

[code]

@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;
}
    
[/code]

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.

RESOLVIDO…

VLW GALERA,