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ção das
Informações</FONT></B></P><BR>\
<P>Autor: <B>" +var1+ "</B></P><P>Tí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"> <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"> <B>Título </B><BR>
<INPUT TYPE="TEXT" NAME="titulo" SIZE="70"></TD>
</TR>
<TR>
<TD WIDTH="75%" COLSPAN="3"> <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]
-------------------------------------------------------------------------