Retorno de Erro para pagina anterior  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
luiscesarinfo
JavaTeenager
[Avatar]

Membro desde: 15/08/2007 18:26:42
Mensagens: 192
Localização: Goiânia - GO
Offline

Pessoal, estou estudando MVC e surgiu uma dúvida. Tenho a pagina JSP que envia as informações para o Servlet para fazer os requests, as validações e chamar os metodos de gravação no banco de dados... Se ocorrer um erro ou uma inconsistencia que impeça de prosseguir tenho que voltar para o JSP e informar ao usuário qual o problema.

Qual a melhor maneira de se fazer isso ? (Não estou utilizando nenhum framework web)

[]'s

Luis Cesar

Esp. em Orientação a Objetos e Internet
Bs. em Ciência da Computação
Analista de Sistemas / Desenvolvedor JAVA
www.icoweb.com.br
[Email] [MSN]
celso.martins
Virtual Machine Man
[Avatar]

Membro desde: 19/06/2006 13:54:23
Mensagens: 699
Localização: Rio de Janeiro
Offline

luiscesarinfo wrote:Pessoal, estou estudando MVC e surgiu uma dúvida. Tenho a pagina JSP que envia as informações para o Servlet para fazer os requests, as validações e chamar os metodos de gravação no banco de dados... Se ocorrer um erro ou uma inconsistencia que impeça de prosseguir tenho que voltar para o JSP e informar ao usuário qual o problema.

Qual a melhor maneira de se fazer isso ? (Não estou utilizando nenhum framework web)

[]'s

Luis Cesar


Amigo, creio que se você voltar para a mesma JSP não terás MVC, pois acredito que vai precisar usar o PrintWriter para escrever HTML. Dessa forma, morreu o MVC.

Creio que a melhor abordagem seria você fazer um RequestDispatcher para uma página de erro. Eu utilizo páginas de erro bem específicas para cada Exception (Não sei se é uma boa idéia, mas informa bem =) ). Erros de validação, login, etc. eu aconselharia o uso do DWR. Acho que fica bem elegante.

Bem, acho que é isso.

Abraços

Hoje melhor que ontem e pior que amanhã.

Desenvolvimento Psicopata - Qualidade Total
Twitter
Infoblogs - A vitrine do seu blog
[Email] [WWW]
luiscesarinfo
JavaTeenager
[Avatar]

Membro desde: 15/08/2007 18:26:42
Mensagens: 192
Localização: Goiânia - GO
Offline

Obrigado ao celso.martins pela resposta.

Mais alguem tem uma suguestão ou dica ?

Esp. em Orientação a Objetos e Internet
Bs. em Ciência da Computação
Analista de Sistemas / Desenvolvedor JAVA
www.icoweb.com.br
[Email] [MSN]
jimjr_ivan
HelloWorld
[Avatar]

Membro desde: 10/10/2007 11:13:21
Mensagens: 14
Localização: Bauru
Offline

Bom acho que você quer uma reposta objetiva...bom então ai vai.

Eu utilizo uma classe java onde eu instancio ela a cada vez que quero mostrar uma mensagem...segue exemplo
------------------------------------------
Classe VOMensagem
------------------------------------------
import java.io.Serializable;
import model.vo.*;
public class VOMensagem implements Serializable {

private static final long serialVersionUID = 1L;

private String mensagem;
private String img_mensagem;

public void setMensagem(String mensagem) { this.mensagem = mensagem; }
public void setImg_mensagem(String img_mensagem) {this.img_mensagem = img_mensagem; }

public String getMensagem() { return mensagem; }
public String getImg_mensagem() { return img_mensagem; }

}


Ai no método de validação e persistência eu faço o seguinte:

public String save() {
VOMensagem vOMensagem = (VOMensagem) FacesContext.getCurrentInstance().getApplication().getExpressionFactory().createValueExpression(
FacesContext.getCurrentInstance().getELContext(), vOMensagem, Object.class).getValue(
FacesContext.getCurrentInstance().getELContext());

DaoExemplo exemploDao = new DaoExemplo();
try{
exemploDao.save(exemplo);
//persista os dados aqui.
//Ex. Hibernate
HibernateUtility.commit();
vOMensagem.setImg_mensagem("imagens/salvo.gif");
vOMensagem.setMensagem("Registro salvo com sucesso!");
} catch (Exception ex) {
ex.printStackTrace();
vOMensagem.setImg_mensagem("imagens/erro.gif");
vOMensagem.setMensagem("Erro na validação!");
}
return null;
}


Ai vc tem que fazer o seguinte no JSP.
......
......
<t:panelGrid align="center">
<h:commandButton action="#{actMetodo.save}" image="/pages/imagens/salvar.jpg" />
<t:panelGrid align="center" styleClass="txtCentro" columns="2" rendered="#{! empty vOMensagem.mensagem}">
<h:graphicImage value="#{vOMensagem.img_mensagem}" />
<h:outputText value="#{vOMensagem.mensagem}" style="vertical-align: middle;" styleClass="txtVermelho3"/>
</t:panelGrid>
</t:panelGrid>
......
......


actMetodo = classe java de persistência e validação.

Não esqueca de colocar a classe actMetodo no facesconfig.xml.

Espero que possa ter te ajudado.
Boa programação.
[Email] [MSN]
celso.martins
Virtual Machine Man
[Avatar]

Membro desde: 19/06/2006 13:54:23
Mensagens: 699
Localização: Rio de Janeiro
Offline

jimjr_ivan wrote:Bom acho que você quer uma reposta objetiva...bom então ai vai.

actMetodo = classe java de persistência e validação.

Não esqueca de colocar a classe actMetodo no facesconfig.xml.

Espero que possa ter te ajudado.
Boa programação.


Amigo, só um pitaco, me permita. ;-)

Me parece que o seu exemplo é com JSF e o amigo não está usando Framework MVC, assim como eu, ainda. =)

Ainda estou estudando o Struts e o JSF e ainda não me sinto seguro para usar. Por isso ainda utilizo esta abordagem.

P.S. Creio que a minha resposta tenha sido direta. Só não dei o peixe, ensinei o caminho do local da pesca e qual vara usar. =) Acho que assim vai ajuda-lo a fixar os conceitos.

P.S. 2 -> Luis, se ainda está com dificuldades dá uma olhada nos tutoriais do GUJ sobre servlets e também na API do Java. Te garanto uma coisa, vai ser melhor assim do que eu postar o código para você. ;-)

Abraços e boa sorte

[Email] [WWW]
roberiomatos
Thread.start()
[Avatar]

Membro desde: 29/12/2007 14:33:58
Mensagens: 39
Localização: Fortaleza - CE
Offline

luiscesarinfo wrote:Pessoal, estou estudando MVC e surgiu uma dúvida. Tenho a pagina JSP que envia as informações para o Servlet para fazer os requests, as validações e chamar os metodos de gravação no banco de dados... Se ocorrer um erro ou uma inconsistencia que impeça de prosseguir tenho que voltar para o JSP e informar ao usuário qual o problema.

Qual a melhor maneira de se fazer isso ? (Não estou utilizando nenhum framework web)

[]'s

Luis Cesar


Kara tenho 1 coisa super simpres q eu uso em JSTL:

No servlet quando der algum erro la no catch vc coloca assim:

vc coloca a pagina q vc quer, "val" será a variavel q comanda aparecer ou não mensagem de erro na pagina anterior, e "msg" é a mensagem de erro q vc quer retornar.

ai na sua jsp vc coloca assim dentro do body:


esse código ta dizendo q vc vai colocar 1 label oculto em algum lugar da sua pagina... (ai vc define..xD)
e quando ele retornar passando o parametro pela URL e o val for igual a true ele mostra a mensagem ^^

não sei se vc queria a resposta dessa forma, + se entendi bem o seu problema, isso resolve perfeitamente, e vc n prescisa importar nada.

qualquer coisa estamos ai ^^

"Cada pessoa prioriza seus próprios interesses e algumas não hesitam em prejudicar os outros para alcançar seus objetivos"
[Email] [MSN]
luiscesarinfo
JavaTeenager
[Avatar]

Membro desde: 15/08/2007 18:26:42
Mensagens: 192
Localização: Goiânia - GO
Offline

1 - jimjr_ivan = Muito obrigado pelo post, mas ainda não estou usando nenhum framework MVC, possivelmente vou ingressar no JSF, mas ainda estou colhendo material para estudo.

2 - celso.martins = Entendi sua intenção e utilizei o seu post inicial para minha pesquisa e foi muito util. Apenas queria saber se mais alguem tinha outra sugestão como foi o caso do roberiomatos.

3 - roberiomatos = gostei da sua solução. Vou ver o qual será melhor no meu caso. Qquer coisa mando uma mensagem para vc pedindo outra dica.


no mais muito obrigado a todos. e se mais alguem tiver outra sugestão, posta ai.

[]' Luis Cesar

Esp. em Orientação a Objetos e Internet
Bs. em Ciência da Computação
Analista de Sistemas / Desenvolvedor JAVA
www.icoweb.com.br
[Email] [MSN]
luiscesarinfo
JavaTeenager
[Avatar]

Membro desde: 15/08/2007 18:26:42
Mensagens: 192
Localização: Goiânia - GO
Offline

roberiomatos: Olha só, seu exemplo funcionou perfeitamente, mas com um probleminha : o formulário está voltando vazio. Estou começando com JSTL agora e gostaria de saber o que eu posso fazer para que o formulário volte com os dados que foram enviados.

[]'s Luis Cesar

Esp. em Orientação a Objetos e Internet
Bs. em Ciência da Computação
Analista de Sistemas / Desenvolvedor JAVA
www.icoweb.com.br
[Email] [MSN]
roberiomatos
Thread.start()
[Avatar]

Membro desde: 29/12/2007 14:33:58
Mensagens: 39
Localização: Fortaleza - CE
Offline

é so vc passar por parametro na URL as informações pro seu servlet, e quando vc for retorar o erro vc manda os valores juntos, tipo assim:



desta forma vc vai esta passando pra sua pagina JSP o valor q o servlet recebeu, concatenando as variaveis da URL com o "&";
^^

qualquer duvida so mandar msg

"Cada pessoa prioriza seus próprios interesses e algumas não hesitam em prejudicar os outros para alcançar seus objetivos"
[Email] [MSN]
luiscesarinfo
JavaTeenager
[Avatar]

Membro desde: 15/08/2007 18:26:42
Mensagens: 192
Localização: Goiânia - GO
Offline

ah... blz...

imaginei que teria uma forma melhor de fazer isso usando useBean.

mas muito obrigado pela atenção...


[]'s Luis Cesar

Esp. em Orientação a Objetos e Internet
Bs. em Ciência da Computação
Analista de Sistemas / Desenvolvedor JAVA
www.icoweb.com.br
[Email] [MSN]
roberiomatos
Thread.start()
[Avatar]

Membro desde: 29/12/2007 14:33:58
Mensagens: 39
Localização: Fortaleza - CE
Offline

bem não q eu saiba... xD
+ se vc axa alguma coisa posta ai... ^^

"Cada pessoa prioriza seus próprios interesses e algumas não hesitam em prejudicar os outros para alcançar seus objetivos"
[Email] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team