Estou com uma dúvida que imagino ser bem básica… mais não encontrei nenhuma solução!
Tenho uma classe java que possui um método static void. Dentro deste método, tenho um if. Se o if for true ele envia um e-mail para o usuário senão ele tem que levar o usuário para uma página JSP.
A parte de enviar e-mail está funcionando… Mais não sei como fazer ele encaminhar o usuário para uma página JSP quando ele entra no else.
obs.: este método é chamado por uma página JSP.
Alguém teria alguma ideia de como fazer isso funcionar???
e para fazer isto, você deve ter visibilidade aos objetos request e response, o que normalmente deve ser feito em um servlet. Portanto uma solução é você invés de utilizar um método static void, utilizar um método static boolean na qual retornaria true ou false para o servlet se ele deveria ou não dar um RequestDispatcher.
O problema é que eu estou usando uma classe… tem como usar o requestDispatcher desta forma? Ou em como eu criar o mesmo efeito redirecionando direto da classe?
Um jeito totalmente não aconselhavel é você enviar como parâmetros os objetos request e response para o método, porém como eu já disse é totalmente não aconselhável, pois pelo padrão MVC (Model View Controller, procure no google) não é responsabilidade da classe realizar os RequestDispatchers, e sim do servlet.
De uma lida numa apostila de web gratuita que recomendo.
Sim, você pode colocar um objeto dessa classe no request passado pra servlet e mostrar uma propriedade dele usando a EL (ver apostila).
Pra isso basta seu objeto ter um método chamado getPropriedade(). ex: objeto pessoa, propriedade nome, vai ter um “public String getNome()” e fica ${pessoa.nome} na jsp.
Sim, você vai precisar mapear sua servlet nele.
Na apostila fala sobre tudo isso melhor do que eu.