Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/04/2009, 14:51
Pelirr
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Problema coger elementos array en servlet

Hola, tienes toda la razón, no los había inicializado. De todos modos lo he cambiado un poco, y parece que me sale todo menos una cosa:

...
private boolean initialized;
private ArrayList initErrors;
private HttpServlet servlet;
private clientsFacadeHome clientHome;
private accountsFacadeHome accountHome;
private balanceFacadeHome balanceHome;
public String RESULT_URL, cliente, cuenta, operaciones, nif, theJNDIName, name, lastname1, lastname2, address, phone, birthdate, index,
account, key,creationdate, office, accounttype, amount, amountbalance, concept, conceptdate;
private int phoneint, indexint, accountint, keyint, officeint, amountint, amountbalanceint;
private ArrayList<accountsDto> accountslist;
private ArrayList<balanceDto> balancelist;
private ArrayList<String> stringaccountlist, stringbalancelist, allbalancelist;
private ArrayList errors;

...

public void populate(HttpServletRequest theRequest) throws NamingException{
nif=theRequest.getParameter("nif");
clientsDto clients = new clientsDto();
accountsDto accounts = new accountsDto();
balanceDto balance = new balanceDto();

Context ctx = getInitialContext();

Object homeclient = ctx.lookup("SCajaElenaClientsEjb");
clientHome = (clientsFacadeHome)homeclient;
clientsFacade clientmethod = null;

Object homeaccount = ctx.lookup("SCajaElenaEjb");
accountHome = (accountsFacadeHome)homeaccount;
accountsFacade accountmethod = null;

Object homebalance = ctx.lookup("SCajaElenaBalanceEjb");
balanceHome = (balanceFacadeHome)homebalance;
balanceFacade balancemethod = null;

try {
try {
clientmethod = clientHome.create();
accountmethod = accountHome.create();
balancemethod = balanceHome.create();

accountslist = new ArrayList<accountsDto>();
stringaccountlist = new ArrayList<String>();
allbalancelist = new ArrayList<String>();

try {
clients.setNif(nif);
clients = clientmethod.ReadByNif(clients);

if (clients!=null)
{
name = clients.getName();
lastname1 = clients.getFirstlastname();
lastname2 = clients.getSecondlastname();
address = clients.getAdress();
phoneint = clients.getTelephone();
indexint = clients.getIndex();
birthdate = clients.getBirthday();

phone = Integer.toString(phoneint);
index = Integer.toString(indexint);

cliente = "Nombre y apellidos: "+name+" "+lastname1+" "+lastname2+", nif: "+nif+
", direccion: "+address+", telefono de contacto: "+phone+", fecha de nacimiento: "+
birthdate+" e identificacion en bbdd: "+index+".";

theRequest.setAttribute("cliente", cliente);

accounts.setNif(nif);
accounts = accountmethod.ReadByNif(accounts);
if (accounts!=null)
{
accountslist = accountmethod.ReadAllByNif(accounts, nif);
//Y con el for, lo recorro y lo voy modificando
for (int i=0;i<accountslist.size(); i++)
{
accounts = accountslist.get(i);

accountint = accounts.getAccountnumber();
keyint = accounts.getAccountkey();
officeint = accounts.getOffice();
accounttype = accounts.getAccounttype();
creationdate = accounts.getCreationdate();

account = Integer.toString(accountint);
key = Integer.toString(keyint);
office = Integer.toString(officeint);

cuenta = "Numero de cuenta: "+account+", clave: "+key+", nif del cliente: "+nif+
", numero de oficina: "+office+", tipo de cuenta: "+accounttype+" y fecha de creacion: "+creationdate+".";

stringaccountlist.add(cuenta);

balance.setAccountnumber(accounts.getAccountnumber ());
balance = balancemethod.ReadByAccount(balance);
if (balance!=null)
{
balancelist = new ArrayList<balanceDto>();
stringbalancelist= new ArrayList<String>();
balancelist = balancemethod.ReadByNumber(balance, accounts.getAccountnumber());
for(int j=0; j<balancelist.size();j++)
{
balance = balancelist.get(j);

amountint = balance.getAmount();
amountbalanceint = balance.getAmountbalance();
concept = balance.getConcept();
conceptdate = balance.getConceptdate();

amount = Integer.toString(amountint);
amountbalance = Integer.toString(amountbalanceint);

operaciones = "Numero de cuenta: "+account+", importe inicial: "+amount+", importe final: "+
amountbalance+", concepto del importe: "+concept+" y fecha de la operacion: "+conceptdate+".";

stringbalancelist.add(operaciones);
}
allbalancelist.addAll(stringbalancelist);
}
else
{
operaciones = "No hay movimientos para esta cuenta";
stringbalancelist.add(operaciones);
allbalancelist.addAll(stringbalancelist);
}
}
}
else
{
cuenta = "No hay cuentas para este cliente";
stringaccountlist.add(cuenta);
}
theRequest.setAttribute("cliente", cliente);
theRequest.setAttribute("stringaccountlist",string accountlist);
theRequest.setAttribute("allbalancelist", allbalancelist);

RESULT_URL = "/JSP/ConfirmBajaCliente.jsp";
}
else
{
RESULT_URL = "/HTML/3.BajaCliente/NoExisteCliente-Elim.html";
}

El problema ahora es que necesito que allbalancelist sea una lista de listas, es decir, que sea una lista donde cada elemento sea a su vez otra lista. ¿Sábes como podría definirlo? ¿Tal vez con un List allbalancelist = new ArrayList();?
Muchas gracias, un saludo