Problema coger elementos array en servlet

Quiero en un servlet, crear unas listas de tipo dto, donde guardar varios dto y luego poder acceder a sus campos para mostrarlos después en la página jsp. Pero cuando llega a "accountint = accounts.getAccountnumber();" me dá un error java. Lang. NullPointerException, y la verdad no lo comprendo, creo que lo que le estoy diciendo es que me meta en accountint (que es el elemento i de la lista accountint) el valor del campo Accountnumber de mi dto accounts, que no debería estar vacío, porque se supone que debe contener el elemento i de la lista accountlist. Parte del servlet es:
...
public class DarBajaClienteServlet extends HttpServlet {
private boolean initialized;
private ArrayList initErrors;
private HttpServlet servlet;
private clientsFacadeHome clientHome;
private accountsFacadeHome accountHome;
private balanceFacadeHome balanceHome;
public String RESULT_URL, nif, theJNDIName, name, lastname1, lastname2,address,birthdate, phone, index, creationdate[], accounttype[], account[],concept[], conceptdate[], key[], office[], amount[], amountbalance[];
private int phoneint, indexint, accountint[], keyint[], officeint[], amountint[], amountbalanceint[];
private ArrayList errors, balancelist;
private ArrayList<accountsDto> accountlist;
...
try {
clients.setNif(nif);
clients = clientmethod.ReadByNif(clients);
if (clients!=null)
{
...
accounts.setNif(nif);
accounts = accountmethod.ReadByNif(accounts);
if (accounts!=null)
{
accountlist = accountmethod.ReadAllByNif(accounts, nif);
System.out.println("Despues de la lista account");
//Y con el for, lo recorro y lo voy modificando
for (int i=0;i<accountlist.size(); i++)
{
accounts = accountlist.get(i);
System.out.println("coge cada miembro de lista");
accountint = accounts.getAccountnumber();
keyint=accounts.getAccountkey();
accounttype=accounts.getAccounttype();
creationdate = accounts.getCreationdate();
officeint = accounts.getOffice();
...
Lo que en realidad busco es poder mostrar los valores de esas listas posteriormente en una página jsp. A lo mejor estoy complicándolo mucho.
1

1 Respuesta

62.050 pts. Ingeniero en Informática
así a primera vista (y viendo el error que te da) diría que el problema está en esta llamada: accountlist = accountmethod.ReadAllByNif(accounts, nif);
Parece que está rellenando la lista con nulos, de ahí el error al hacer el primer accounts.getAccountnumber();
Lo mejor en estos casos siempre es depurar paso a paso la ejecución de los métodos para ir viendo por qué los resultados no son los esperados.
Si puedes poner aquí el código de ese método y de la clase accountsDto puedo echar un vistazo a ver si veo el problema.
Hola, al final lo solucioné, el problema es que no guardaba memoria para el array (no hacía Arraylist ... = new arrayList();), fallo tonto donde los halla, siento las molestias. De todos modos cambié el código y lo simplifiqué bastante, y ahora sale bien. El único problema que encuentro, es que al mostrar el array en la página jsp, sale con los corchetes [], me gustaría que no salieran, pero por ahora me vale. Muchas gracias por todo, un saludo
Me alegro que lo solucionaras.
En cuanto a que salgan los corchetes sin ver el código del jsp no te puedo decir mucho. Pero por lo que veo del código que has puesto no entiendo muy bien por qué metes los valores de cada objeto de la lista en variables tipo array. Solo lo entendería si cada objeto "accounts" de la lista es un conjunto de cuentas y no solo una.
Si luego lo que estás haciendo es imprimir el array en el jsp usando directamente esto:
c.out("accountint"); //o similar
Es normal que salgan los corchetes. Para que no salgan debes hacer:
c.out("accountint[0]"); //o similar
o:
<%for (int i=0;i
c.out("accountint[<%= i %>]"); //o similar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas