Newsgroup: it.comp.java
Titolo: Array e bean

Sono un quasi neofita di java.
Sto facendo una applicazione jsp/servlet/bean e mi sono chiesto come
posso fare a passare un array da un bean a jsp.
Questa è una prova.
Il codice del bean:
package gianluca.ricette;
//import java.sql.*;
public class NewBean {
  private String [] nomi;
  public String [] getNomi(){
    return nomi;
  }
  public void caricaBean() {
	nomi = new String [3];
        nomi[1] = "primo nome";	
	nomi[2] = "secondo nome";
	nomi[3] = "terzo nome";
  }
}
il codice della pagina jsp:
<html>
<head>
<title>Prova bean</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<jsp:useBean id="newBean"
             class="gianluca.ricette.NewBean"
             scope="request"/>
<jsp:setProperty name="newBean" property="*"/>
<% newBean.caricaBean(); %>
TABLE WIDTH="100%" BORDER="1">
  <TR><TD ALIGN="right" WIDTH="50%">Primo nome:</TD>
      <TD WIDTH="50%"><%= newBean.getNomi() %></TD>
  </TR>
</table>
</body>
</html>
Come faccio nella newBean.getNomi() a dirgli di prendermi il primo
elemento dell'array?
Grazie.
Gianluca.


Secondo me la cosa più sensata da fare  è mettere un indice come parametro
della funzione getNomi:
String getNomi(int indice) {
    return nomi[indice];
}
poi, nella jsp, inserire
<%=newBean.getNomi(0) %>
altrimenti, se non vuoi modificare il codice del bean nella jsp inserisci
<%
String [] nomi=newBean.getNomi();
out.print(nomi[0]);
%>
Però, visto che mi sembra inutile istanziare una nuova variabile String,
credo sia più semplice inserire il parametro indice.
Ciao

package gianluca.ricette;
public class NewBean {
  private String [] nomi;
  private int indice;
  public String getNomi(int indice){
    return nomi[indice];
  }
  public void caricaBean() {
	nomi = new String [3];
        nomi[1] = "primo nome";	
	nomi[2] = "secondo nome";
	nomi[3] = "terzo nome";
  }
}
<html>
<head>
<title>Prova bean</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<jsp:useBean id="newBean"
             class="gianluca.ricette.NewBean"
             scope="request"/>
<jsp:setProperty name="newBean" property="*"/>
<% newBean.caricaBean(); %>
TABLE WIDTH="100%" BORDER="1">
  <TR><TD ALIGN="right" WIDTH="50%">Primo nome:</TD>
      <TD WIDTH="50%"><%= newBean.getNomi(0) %></TD>
  </TR>
</table>
</body>
</html>
Mi da il seguente errore :
java.lang.ArrayIndexOutOfBoundsException
Dove sbaglio?
Grazie.

 Grazie.
Non ricordo mai se gli array in Java cominciano da 0 o 1...(programmazione C
;-) )
Mettici 1 al posto di 0...

Aspetta...
public class NewBean {
  private String [] nomi;
  private int indice;
che ti serve dichiarare una variabile privata di nome indice?
Il compilatore potrebbe darti errore perchč non sa se scegliere private int
indice o il parametro da te passato...oppure potrebbe metterti il valore
della variabile privata indice (che non essendoinizializzata da nessuna
parte) contiene un valore arbitrario che lo fa andare fuori dai limiti....

 ha scritto nel messaggio
news:8uskmu4l7eghelif7...@4ax.com...


 }
Scusa ma non credo proprio: al piů puň essere derivato dalla classe Bean
(cosě propone JBuilder ma non č obbligatorio).

Il compilatore potrebbe darti errore perchè non sa se scegliere private int
