Boa noite pessoal,
Estou com um problema, estou fazendo uma tela de login. E quando de algum erro, queria que exibisse a mensagem do erro que aconteceu.
Fiz a tela para aparecer a mensagem em um confirmDialog dentro de um painel que fica dentro de um outputPanel, ficou legal, mas eu queria que aparecesse como la no showcase do primefaces mostra, em uma nova janela com a mensagem e tudo…
já tentei fazer várias coisas, colocar um confirmDialog com binding, criar um dialog em vez de confirmdialog, mas como eu construo-o dinamicamente, ele não é mostrado em uma nova janela,
sendo que se eu ativa o ajax no commandbutton para logar, ele aparece, sendo que mesmo se eu logar, a mensagem irá aparecer, além do pior: como uso jsf2.0, uso o navigation rule como o retorno do metodo string sendo a pagina para ser redirecionada. Se ativo o ajax, o redirecionamento não funciona, se desativo o ajax, a confirmdialog não é mostrado como uma janela.
Alguém tem uma ideia do que fazer.
Segue parte do código para exemplificar
o xhtml:
<p:commandButton value="#{msg.pagina_login_entrar}" ajax="false"
action="#{usuarioMB.entrar}" />
<h:outputLabel value="#{msg.pagina_login_footer}"
styleClass="labelFooter" />
</h:panelGrid>
</p:panel>
<br />
<p:outputPanel binding="#{usuarioMB.otpPanel}"/>
o código java:
[code] public String entrar() {
System.out.println(“Entrou no entrar”);
String mensagem = controle.logar(usuario);
if (!mensagem.equals(“Sucesso”)) {
construirPanel(mensagem);
return null;
}
System.out.println(“não entrou no if”);
return setSession();
}
private void construirPanel(String mensagem) {
Panel panel = new Panel();
panel.setStyleClass("painelErro");
try {
String[] messages = mensagem.split("//");
ConfirmDialog confirmDialog = new ConfirmDialog();
String message;
message = bundle.getString("pagina_login_mensagem_" + messages[0]);
for (int i = 1; i < messages.length; i++) {
message = message + "<br />" + bundle.getString("pagina_login_mensagem_" + messages[i]);
}
confirmDialog.setMessage(message);
confirmDialog.setAppendToBody(false);
panel.getChildren().add(confirmDialog);
} catch (Exception e) {
ConfirmDialog confirmDialog = new ConfirmDialog();
confirmDialog.setMessage(bundle.getString("pagina_login_mensagem_"
+ mensagem));
confirmDialog.setRendered(true);
panel.getChildren().add(confirmDialog);
}
otpPanel.getChildren().clear();
otpPanel.getChildren().add(panel);
otpPanel.setRendered(true);
}[/code]
Desse jeito funciona a mensagem, o navigation rule, só que é exibido abaixo do commandbutton e não em uma nova janela.
Alguem pode ajudar?