Me desculpe se esta questao seja (ou pareca) facil demais.
Eu ja li as dicas do 
http://espec.ppgia.pucpr.br/~jmyada/tecno/dicas.html
e por incrivel que pareca a coisa nao funciona do jeito que esperava.

Eu ja' fiz programas e testei exemplos que enviam
JavaBeans do JSP para Servlet e que funcionam.
Mas este caso particular eu gostaria de entender por que
motivo nao funciona. Nao quero fugir `a questao.

No exemplo abaixo o meu JSP tem:
<jsp:useBean id="testeBean" class="TesteBean" scope="request">
<jsp:setProperty name="testeBean" property="*"/>
</jsp:useBean>

Se nao uso o "scope" entao assume-se que seja "page"
assim o servlet nao recebe a referencia para o JavaBean.
Se uso o scope="request" um objeto e' instanciado e a
referencia passada, mas o setProperty parece nao ter efeito.
Se uso o scope="session" nada e' passado para o servlet...

O programa abaixo e' consituido de tres arquivos:
testeform.jsp que envia o testeBean para o servlet TesteServlet
TesteBean.java com instancia id="testeBean"
TesteServlet apenas le o testeBean recebido e imprime algo.

Talvez o erro seja facilmente descoberto inspecionando
o <jsp:usebean> no testeform.jsp e o getAttribute do TesteServlet.java

A outra maneira e simplesmente rodar o codigo para ver a encrenca.

Perguntas:
- Sera' que o usebean esta' mal localizado no testeform.jsp?
- Como os campos do formulario sao associados ao JavaBeans pelo *?
- Sera' que estou pegando os getAttribute de contexto errados?
- Com excecao do scope page, qualquer um deveria funcionar igualmente
  para este proposito...

agradeco por qualquer dica que derem.
muito obrigado
Carlos

==========================================================
testeform.jsp

<jsp:useBean id="testeBean" class="TesteBean" scope="request">
<jsp:setProperty name="testeBean" property="*"/>
</jsp:useBean>

 
<HTML>
 
<HEAD>
<SCRIPT>
function valida()
{
        var erro = true
        if(document.REVS.autor.value == "")
        {
                alert("O campo Autor(es) é obrigatório")
                document.REVS.autor.focus()
        }
        else
        {
                if(document.REVS.titulo.value == "")
                {
                        alert("O campo Título é obrigatório")
                        document.REVS.titulo.focus()
                }
        }
if( !erro )
                {
                var1 = document.REVS.autor.value 
                var2 = document.REVS.titulo.value
        
janela=open("","Confirma","scrollbars=yes,width=740,height=480,resizable=off");
                janela.document.write("<BODY><P><B><FONT SIZE='+1' COLOR='#23238E'
FACE='Verdana'>\
                Confirma&ccedil;&atilde;o das
Informa&ccedil;&otilde;es</FONT></B></P><BR>\
                <P>Autor: <B>" +var1+ "</B></P><P>T&iacute;tulo: <B>"
                +var2</P>\
                <FORM><INPUT TYPE='SUBMIT' NAME='btnok' VALUE='Confirmar'
ONCLICK='window.close()'>\
                   <INPUT TYPE='BUTTON' NAME='btncrg' VALUE='Corrigir'
ONCLICK='window.close()'></FORM></P></BODY>")
                }
        }

</SCRIPT>

<TITLE></TITLE>
</HEAD>

<BODY>

                   <% if (request.getParameter("autor")==null
                    && request.getParameter("titulo") == null) { %>

<FORM NAME="REVS" ACTION="/teste" method="post">
<TABLE WIDTH="100%">
<TR>
<TD WIDTH="75%" COLSPAN="3">&nbsp;<B>Autor(es) </B><FONT COLOR="#5D5D5D"
FACE="Arial" SIZE="-1"><B>[ Exemplo: (Autor1; Autor2; Autor3; ... )
]</B>
</FONT><BR>
<INPUT TYPE="TEXT" NAME="autor" SIZE="70"> </TD>
</TR>
<TR>
<TD WIDTH="75%" COLSPAN="3">&nbsp;<B>T&iacute;tulo </B><BR>
<INPUT TYPE="TEXT" NAME="titulo" SIZE="70"></TD>
</TR>
<TR>
<TD WIDTH="75%" COLSPAN="3">&nbsp;<CENTER>
<INPUT TYPE="submit" NAME="btn1" VALUE="Submeter"> 
</CENTER>
</TD>
</TR>
</TABLE>
</FORM>

                   <% } else { %>
                   <P>
                   <B>You have provided the following info</B>: 
                   <P>     
                   <B>Name</B>: <jsp:getProperty name=
                   "testeBean"
                   property="autor"/>     
                   <P>     
                   <B>Email</B>: <jsp:getProperty
                   name="testeBean" property="titulo"/> 
                   <% } %>     

</BODY>
</HTML>


==========================================================
TesteServlet.java mapeado para /teste

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

/** 
 *
 * @author  ho
 * @version 
 */
public class TesteServlet extends HttpServlet {
   
    /** Initializes the servlet.
    */  
    public void init(ServletConfig config) throws ServletException {
        super.init(config);

    }

    /** Destroys the servlet.
    */  
    public void destroy() {

    }

    /** Processes requests for both HTTP <code>GET</code> and
<code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
    throws ServletException, java.io.IOException {
        
        HttpSession session = request.getSession(true);
        TesteBean teste = (TesteBean)session.getAttribute("testeBean");
        TesteBean teste1 = (TesteBean)request.getAttribute("testeBean");
        TesteBean teste3 =
(TesteBean)getServletContext().getAttribute("testeBean");
        response.setContentType("text/html");
        java.io.PrintWriter out = response.getWriter();

        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet</title>");
        out.println("</head>");
        out.println("<body>");

//        out.println("<p>Autor ="+teste.getAutor()+"</p><br>");
//        out.println("<p>Titulo ="+teste.getTitulo()+"</p><br>");
        if (teste == null)
            out.println("<p>Null</p>");
        if (teste1 == null)
            out.println("<p>Null  One</p>");
        if (teste3 == null)
            out.println("<p>Null  Three</p>");
        out.println("</body>");
        out.println("</html>");
        
        out.close();
    } 

    /** Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse
response)
    throws ServletException, java.io.IOException {
        processRequest(request, response);
    } 

    /** Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request,
HttpServletResponse response)
    throws ServletException, java.io.IOException {
        processRequest(request, response);
    }

    /** Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }

}

==========================================================
TesteBean.java

import java.io.*;
public class TesteBean implements Serializable {
    private String autor, titulo;
    public TesteBean()
    {
        autor = null;
        titulo = null;
    }
    public void setAutor(String autor)
    {
        this.autor = autor;
    }
    public String getAutor()
    {
        return autor;
    }
    public void setTitulo(String titulo)
    {
        this.titulo = titulo;
    }
    public String getTitulo()
    {
        return titulo;
    }
}

------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a