Javabeans no servlet

Olá pessoal,

Estou tentando fazer o seguinte no sevlet:

  TesteBean[] test = new TesteBean[1];
        
        test[0].setAutor(autor);
        test[0].setCor(cor);
        
        out.println(test[0].getAutor());

Porém não estou conseguindo obter sucesso…alguém poderia me dar uma dica???

t+

sta.Leisley

Você criou o array mas não colocou objetos dentro dele !

É preciso que test[0] tenha algum objeto TestBean referenciado…
test[0] = new TestBean();

Entendeu ?

[quote=ana_abrantes]Você criou o array mas não colocou objetos dentro dele !

É preciso que test[0] tenha algum objeto TestBean referenciado…
test[0] = new TestBean();

Entendeu ?[/quote]

Valeu pela dica…deu certo…valeu mesmo

Abraços,

sta. Leisley

[quote=Leisley][quote=ana_abrantes]Você criou o array mas não colocou objetos dentro dele !

É preciso que test[0] tenha algum objeto TestBean referenciado…
test[0] = new TestBean();

Entendeu ?[/quote]

Valeu pela dica…deu certo…valeu mesmo

Abraços,

sta. Leisley[/quote]

Só mais uma perguntinha…

Caso eu queira fazer a leitura dos dados em uma pág jsp…
Estou usando o comando “<jsp:useBean id=“test” class=“com.bean.TesteBean” scope=“request”/>”, porém ele inicializa o bean não da forma que eu desejo "TesteBean[] test = new TesteBean[1];
", e assim não consigo pegar os dados no jsp…

.
.
.

<jsp:useBean id="test" class="com.bean.TesteBean" scope="request"/>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
  
O bean é : <%= test.getAutor() %>
    <h1>JSP Page</h1>
.
.
.

Você ainda não entendeu…
Porque você está usando array e não o próprio bean ?
No seguinte código:
TestBean[] test = new TestBean[1];
test[0] = new TestBean();

test é uma variável de referência que está apontado para o objeto array do tipo TestBean.

test[0] é uma outra variavel de referência que está apontando para o objeto do tipo TestBean.

Entenda: arrays são objetos também.

No seu caso, eu não entendi ainda porque quer usar array se tem um elemento só.

[quote=ana_abrantes]Você ainda não entendeu…
Porque você está usando array e não o próprio bean ?
No seguinte código:
TestBean[] test = new TestBean[1];
test[0] = new TestBean();

test é uma variável de referência que está apontado para o objeto array do tipo TestBean.

test[0] é uma outra variavel de referência que está apontando para o objeto do tipo TestBean.

Entenda: arrays são objetos também.

No seu caso, eu não entendi ainda porque quer usar array se tem um elemento só.[/quote]

Então Ana este é apenas um teste q estou fazendo, pois no meu projeto terei varias questões com descrição e alternativas sobre um determinado assunto que o aluno escolheu. E terei q mostrar todos as quetoes daquele assunto.

Quando meus objetos são coleções ou arrays, eu uso a tag c:forEach da JSTL, mas você pode usar scriptlet também, é só usar como se estivesse fazendo um programa em Java.

Olá,

Então é o q estou tentando fazer, porém qdo tento usar os métodos do javabeans no jsp não consigo, pois já iniciei o javabean no servlet…e não posso fazer isso novamente no jsp…então tentei passar o array do tipo TesteBean para o jsp…porém não consigo ler os objetos do tipo TesteBean…

Leisley

Coloque aqui o código do servlet e do jsp para poder ver o que está ocorrendo de errado, ok ?

O TesteServlet:

.
.
.

  protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        
        autor = request.getParameter("autor");
        cor = request.getParameter("cor");
        
       
        
        TesteBean[] test = new TesteBean[1];
        test[0] = new TesteBean();
        test[0].setAutor(autor);
        test[0].setCor(cor);
               
       /*         
        out.println(test[0].getAutor());
        out.println(test[0].getCor());
     */
       request.setAttribute("test", test);
       
       RequestDispatcher rd = request.getRequestDispatcher("jsp/Teste.jsp");
       rd.forward(request,response);
    }
.
.
.

o TesteBean:

/*
 * TesteBean.java
 *
 * Created on 8 de Agosto de 2005, 16:07
 */

package com.bean;

import java.beans.*;
import java.io.Serializable;

/**
 * @author Leisley
 */
public class TesteBean extends Object implements Serializable {
    
    private String aut;
    private String c;
  
    public TesteBean() {
    
    }
    
    public void setAutor(String autor){
        aut = autor;
    }
    
    public void setCor(String cor){
        c = cor;
    }
    
    public String getAutor(){
        return aut;
    }
    
    public String getCor(){
        return c;
    }
    
}

o Teste.jsp:

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.util.*"%>

<jsp:useBean id="test" scope="application" class="com.bean.TesteBean"/>
<%--
The taglib directive below imports the JSTL library. If you uncomment it,
you must also add the JSTL library to the project. The Add Library... action
on Libraries node in Projects view can be used to add the JSTL 1.1 library.
--%>
<%--
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
--%>

<!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">
        <title>JSP Page</title>
    </head>
    <body>
 

    <h1>JSP Page</h1>
  
   <% 
     
     String x = test.getAutor();
     out.println(x);

  %>

No jsp precisava ler test[0].getAutor para ler o objeto do array TesteBean, mas ele dá erro…

Se você mudar a seguinte linha no servlet, vai funcionar:

request.setAttribute(“test”, test[0]);

Ou fazer um loop no jsp, mas aí você não vai poder usar o javabean.

[quote=ana_abrantes]Se você mudar a seguinte linha no servlet, vai funcionar:

request.setAttribute(“test”, test[0]);

Ou fazer um loop no jsp, mas aí você não vai poder usar o javabean.[/quote]

Então tentando usar request.setAttribute(“test”, test[0]);…Eu pecisaria usar a linha de comando no jsp “jsp:useBean…”? E quando eu tiver mais de uma questao? Pq este é um teste como se os meus dados autor e cor fossem uma questão…

Ai eh que estah…
Se vc for usar um array ou collection, nao vai usar jsp usebean entende…
Use um loop no jsp com scriptlet ou com c:forEach da JSTL.