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.