Problema navegação JSF

7 respostas
R

Estava procurando sobre navegação no JSF, achei esse link e fui tentar fazer:

http://www.devmedia.com.br/articles/viewcomp.asp?comp=5243&hl=

Coloquei esse botão na página

<h:commandButton label="Teste" action="ok" />

E no faces-config.xml

<from-view-id>/template.jsp</from-view-id> <navigation-case> <from-outcome>ok</from-outcome> <to-view-id>teste.formulario.logic</to-view-id> </navigation-case> </navigation-rule>

tbm tentei sem o from-view-id, só que quando clico no botão não da nada…

7 Respostas

vanilton.coelho

por acaso você tem alguma página que se chame “teste.formulario.logic” ???

cara, o atributo to-view-id tem que conter a página de destino, exemplo:

&lt;navigation-rule&gt;
  &lt;from-view-id&gt;/login.jsp&lt;/from-view-id&gt;
  &lt;navigation-case&gt;
    &lt;from-outcome&gt;ok&lt;/from-outcome&gt;
    &lt;to-view-id&gt;/loginEfetuado.jsp&lt;/to-view-id&gt;
  &lt;/navigation-case&gt;
&lt;/navigation-rule&gt;

ou seja, se uma string “ok” for retornada de algum managed bean que é usado dentro de login.jsp, a página será encaminhada para a página loginEfetuado.jsp

simples assim.

R

Tenho sim a página teste.formulario.logic(framework VRaptor)
mas também já testei com páginas jsp, mas não funciona.

vou continuar testando… parece ser simples, mas aqui não ta funcionando

vanilton.coelho

você tem alguma página de erro mapeada?? se não tiver, pode estar ocorrendo algum erro na pagina de destino e como não tem uma página de erro pode ficar tudo branco, sacou, veja isso se no console da IDE não está disparando nenhum erro.

R

agora testei aqui, e ta indo mudei para assim a regra:

<navigation-rule> <from-view-id>[b]*[/b]</from-view-id> <navigation-case> <from-outcome>teste</from-outcome> <to-view-id>/teste.formulario.logic</to-view-id> </navigation-case> </navigation-rule>

Só que tem um problema, como eu uso o VRaptor os formulários eu tenho que acessar por esse endereço: teste.formulario.logic (se eu acesso funciona) só que o jsf procura por página .jsp

descriptionThe requested resource (/WebApplication2/teste.formulario.jsp) is not available.

Acho que deve ser por causa disso aqui:

<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping>

Só que eu preciso disso porque minhas páginas são .xhtml e uso isso para abrir elas .jsp

R

Tentei mudar no web.xml o mapeamento do vraptor

de:

<servlet-mapping> <servlet-name>vraptor2</servlet-name> <url-pattern>*.logic</url-pattern> </servlet-mapping>

para:

<servlet-mapping> <servlet-name>vraptor2</servlet-name> <url-pattern>*.jsp</url-pattern> </servlet-mapping>

Só que dai quando acesso as páginas .jsp dá esse erro:

Quem puder ajudar eu agradeço :smiley:

R

Só para complementar:

vi esse tópico:

http://www.vraptor.com.br/forum/posts/list/67.page

de 2006, não sei se já tem como integrar, se um dos criadores do vraptor puderem me informar isso.

Porque para a interface estou usando o richfaces que pelo que vi preciso usar JSF
Só que o sistema tava quase pronto usando VRaptor que gostei bastante por causa da produtividade

Atualmente, existe como integrar JSF + VRaptor?

Luiz.java

Essa é pag de contato
:

<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
http://www.w3.org/TR/html4/loose.dtd”>

<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”>

&lt;title&gt;JSP Page&lt;/title&gt;
    &lt;/head&gt;

<body bgcolor="">




<h2>INFORMAÇÕES PARA CONTATO:</h2>
<form> <uf>
  • Endereço: Rua ; Olavo Bilac, nº 238,Jardim Eldorado, Palhoça,SC.
  • Telefone: ([telefone removido] /([telefone removido]
  • Email: [email removido]
  • </uf>
    </form>
    <form action=“TCC” method=“POST”>
    <hr>

    <h1>Deixe seu recado</h1>
    
    <table border=2>
    
    <tr><td> Nome:
    
    <input type=“text” name=“Nome” value="" />
    
    
    </td></tr>
    
    <tr><td> Tel:
    
    <input type=“text” name=“Tel” value="" />
    </td></tr>
    
    <tr><td> E-mail:
    
    <input type=“text” name=“Email” value="" />
    </td></tr>
    
    <tr><td>
    
    Recado:
    

    <textarea name=“Recado” rows=“10” cols=“50”>

    </textarea></td></tr>
    </table>

    <input type=“submit” value=“Enviar” name=“botao” onclick=/>

    </form>








    Serviços prestados/ Fale Conosco/ Trabalhos executodos /Voltar a o Inicio !!

    <BR>
    &lt;/body&gt;
    

    </html>


    Esse é o servlet:

    O problema é que quando e u envio o email, Não aparece nada :???

    package envio.email;
    
    import javax.swing.<em>;
    
    import javax.mail.</em>;
    
    import javax.mail.internet.<em>;
    
    import java.util.Properties;
    
    import javax.mail.Message;
    
    import javax.mail.Session;
    
    import javax.mail.Transport;
    
    import javax.mail.internet.InternetAddress;
    
    import javax.mail.internet.MimeMessage;
    
    import <a href="http://java.io">java.io</a>.</em>;
    
    import <a href="http://java.net">java.net</a>.*;
    

    import javax.servlet.;
    import javax.servlet.http.
    ;

    public class TCC extends HttpServlet {
    
    private String Nome;
    
    private String Tel;
    
    private String Email;
    
    private String Recado;
    
    protected void Servlet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    

    try {

    String mailServer = "mail.seumailserver.com.br";
    
    String assunto =  getNome();
    
    String para = getTel();
    
    String de = getEmail();
    
    String mensagem =getRecado();
    
    sendSimpleMail(assunto, para, de, mensagem);
    

    JOptionPane.showMessageDialog(null, “Email enviado com Sucesso !!!”);

    }
    
    catch (NumberFormatException ex) {
    
    erroConverte(request, response);
    
    }
    
    }
    
    public void sendSimpleMail (String mailServer, String subject,
    
    String to,String from, String mensagem)
    
    throws AddressException, MessagingException {
    

    Properties mailProps = new Properties();
    //definição do mailserver

    mailProps.put(“mail.smtp.host”, mailServer);

    Session mailSession = Session.getDefaultInstance(mailProps, null);

    //As duas linhas seguintes de código, colocam no formato de endereços,
    
    //supostamente válidos, de email os dados passados pelos parâmetros to e from.
    
    InternetAddress destinatario = new InternetAddress (to);
    
    InternetAddress remetente = new InternetAddress (from);
    

    //As duas linhas de código a seguir, são responsáveis por setar os atributos e
    //propriedas necessárias do objeto message para que o email seja enviado.
    //inicialização do objeto Message
    Message message = new MimeMessage (mailSession);

    //Definição de quem está enviando o email
    message.setFrom(remetente);

    //define o(s) destinatário(s) e qual o tipo do destinatário.
    //os possíveis tipos de destinatário: TO, CC, BCC

    message.setRecipient( Message.RecipientType.TO, destinatario );
    //definição do assunto do email

    message.setSubject (subject);
    //definição do conteúdo da mesnagem e do tipo da mensagem

    message.setContent (mensagem.toString(), “text/plain”);
    //a linha de código seguinte é a responsável pelo envio do email

    Transport.send (message);

    }

    private void camposObrigatorios(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.println("&lt;html&gt;");
        out.println("&lt;head&gt;");
        out.println("&lt;Title&gt;Campos Obrigatórios&lt;/Title&gt;");
        out.println("&lt;/head&gt;");
        out.println("Peencha Todos os Campos");
        out.println("<a >Voltar</a>");
        out.println("&lt;/body&gt;");
        out.println("&lt;/html&gt;");
    }
     
      private void erroConverte(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.println("&lt;html&gt;");
        out.println("&lt;head&gt;");
        out.println("&lt;Title&gt;Endereço de Email inválido&lt;/Title&gt;");
        out.println("&lt;/head&gt;");
        out.println("Erro de Conversão - Tente Novamente");
        out.println("&lt;/body&gt;");
        out.println("&lt;/html&gt;");
    
    }
    
    private void processRequest(HttpServletRequest request, HttpServletResponse response)
    
    throws ServletException, IOException {
    
    response.setContentType(text/html;charset=UTF-8”);
    
    setNome(request.getParameter(Nome));
    
    try {
    
    setTel(request.getParameter(Tel));
    
    setEmail(request.getParameter(Email));
    
    } catch (NumberFormatException ex) {
    
    erroConverte(request, response);
    
    }
    
    setRecado(request.getParameter(Recado));
    
    if (getNome() == null || getTel() ==null || getEmail() == null ||
    
    getRecado() == null) {
    
    camposObrigatorios(request, response);
    
    }
    
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 
    
    /** 
    * Handles the HTTP &lt;code&gt;POST&lt;/code&gt; method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
    
    /** 
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    
    public String getNome() {
        return Nome;
    }
    
    public void setNome(String Nome) {
        this.Nome = Nome;
    }
    
    public String getTel() {
        return Tel;
    }
    
    public void setTel(String Tel) {
        this.Tel = Tel;
    }
    
    public String getEmail() {
        return Email;
    }
    
    public void setEmail(String Email) {
        this.Email = Email;
    }
    
    public String getRecado() {
        return Recado;
    }
    
    public void setRecado(String Recado) {
        this.Recado = Recado;
    }
    
    private void sendSimpleMail(String Nome, String Tel, String Email, String Recado) {
        throw new UnsupportedOperationException("Not yet implemented");
    }
     public void init() {
        setNome(null);
        setTel(null);
        setEmail(null);
        setRecado(null);
    }
    
    public void destroy() {
        setNome(null);
        setTel(null);
        setEmail(null);
        setRecado(null);
    } // &lt;/editor-fold&gt;
    

    }

    Criado 11 de outubro de 2008
    Ultima resposta 11 de out. de 2008
    Respostas 7
    Participantes 3