| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 10:11:35
|
luiscesarinfo
JavaTeenager
![[Avatar]](/images/avatar/9b5527044c6c8470d1b47642c872a2a1.jpg)
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 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 10:43:52
|
celso.martins
Virtual Machine Man
![[Avatar]](/images/avatar/3ff4cea152080fd7d692a8286a587a67.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 11:00:21
|
luiscesarinfo
JavaTeenager
![[Avatar]](/images/avatar/9b5527044c6c8470d1b47642c872a2a1.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 11:37:53
|
jimjr_ivan
HelloWorld
![[Avatar]](/images/avatar/a768922976dd05cd372dde028932ad91.png)
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 12:13:16
|
celso.martins
Virtual Machine Man
![[Avatar]](/images/avatar/3ff4cea152080fd7d692a8286a587a67.jpg)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 12:36:31
|
roberiomatos
Thread.start()
![[Avatar]](/images/avatar/af2e78df385aa7c0d16d5b530ec5022a.png)
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" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/01/2008 13:29:43
|
luiscesarinfo
JavaTeenager
![[Avatar]](/images/avatar/9b5527044c6c8470d1b47642c872a2a1.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2008 09:34:05
|
luiscesarinfo
JavaTeenager
![[Avatar]](/images/avatar/9b5527044c6c8470d1b47642c872a2a1.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2008 09:40:11
|
roberiomatos
Thread.start()
![[Avatar]](/images/avatar/af2e78df385aa7c0d16d5b530ec5022a.png)
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" |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2008 09:45:59
|
luiscesarinfo
JavaTeenager
![[Avatar]](/images/avatar/9b5527044c6c8470d1b47642c872a2a1.jpg)
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/01/2008 09:50:57
|
roberiomatos
Thread.start()
![[Avatar]](/images/avatar/af2e78df385aa7c0d16d5b530ec5022a.png)
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" |
|
|
 |
|
|