Java - JAVA AYUDA EN SERVLET

 
Vista:

JAVA AYUDA EN SERVLET

Publicado por cristhian (3 intervenciones) el 14/01/2014 18:45:36
ME PUEDAN AYUDAR !! Y ESTE ES UN EJEMPLO !!

USO JAVA SERVLET
TENGO UNA CLASE COMO ESTA :

1
2
3
4
5
6
class alumno (){
private string cod_alu
private strin nombre
private list<objetoevalua> lisEvalua
private objetoevalua objeval
}

DEspues hago esto

en un servelet
1
2
3
List<alumno > lAlum = new ArrayList<alumno>();
lisAlumno = serviceDao.getAlumAsigCargoxDocen(_docACo);
//Hasta aca solo se lleno cod_alu y nombre

despues hago esto:
1
int regs = serviceDao.RecuperarCalific(_docACo,lAlum);

1
2
3
4
5
6
7
8
9
10
//serviceDao.RecuperarCalific hace esto
public int RecuperarCalificaciones(object docACo,List<alumno> lAlum){
int n_calificaciones = 0;
for (alumno alu : lAlum) {
List<objetoevalua> lisAluCal = determina(lisAluCal ,alu.getCod_alu());
alu.setListEvalua(lisAluCal );
}
 
return n_calificaciones;
}

//lo raro es que del servelet la lista "lAlum" el atributo "lisEvalua"
se setio por que pasa esto no deberia pasar !!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

JAVA AYUDA EN SERVLET

Publicado por Cristhian (3 intervenciones) el 14/01/2014 20:36:31
claro se actualizo se modifico por que en un inicio el "lisEvalua" esta null despues de hacer :

int regs = serviceDao.RecuperarCalific(_docACo,lAlum);

se actualiso o se modificio el "lisEvalua" y no deberia por que a ese metodo le llega como parametro !!
y ese me todo solo regresar o retorna un int :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jhonnathan Emilio Cardona Saineda

JAVA AYUDA EN SERVLET

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 14/01/2014 21:58:44
Hola,
dices que en el metodo serviceDao.RecuperarCalific(_docACo,lAlum);
si tú acá modificas el parametro lAlum dentro de este método tambien lo hará en el servlet. En realidad lo que le estas pasando es la direccion o ubicacion del objeto real. Es como si hicieras:
1
2
List lalumNuevo=lAlum;
//Si modifico lalumNuevo tambien lo hará lAlum porque es la referencia. 

De pronto lo necesites así
1
2
3
4
5
List<String> a1= new ArrayList<String>();
			a1.add("element1");
			List<String> a2=(ArrayList)((ArrayList)a1).clone();
			a2.add("element2");
			System.out.println(a1.size()+"-"+a2.size());

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

JAVA AYUDA EN SERVLET

Publicado por Cristhian (3 intervenciones) el 14/01/2014 22:25:31
sacame de una duda cuando se usa list<objec> son mutables y se pasan como referencia no ? mas no si uso un string eso es inmutable hay si no cambiaria el valor ?? esa era una duda ahora el problema que tengo es este ojala me ayudes te lo agradeceria mucho :S

es la misma clase :

1
2
3
4
5
6
class alumno (){
private string cod_alu
private strin nombre
private list<objetoevalua> lisEvalua
private objetoevalua objeval
}

pero aca ya esta lleno todo sus atributos menos "objeval" y todo esta en sesssion entonces lo recupero de la session algo asi :



entonces en el GET del servlet hago esto :

1
2
3
4
5
6
7
8
List<alumno >  lisAlumOK= (List<alumno >) request.getSession().getAttribute("lAlumno");
 
String codEvaluacion = "GG";
 
for (alumno alu : lisAlumOK){
      AlumnoEvalu alumEva = serviceDao.DeterminarAlumnoEvaluacion(alu .getLisEvalua(), codEvaluacion);
          alu .setObjeval(alumnoevaluacion);
}

ACA LO CURIOSO ES QUE YA ESTANDO EN SESSION Y SIN HACER NADA SOLO RECORRER EL FOR YA ME MODIFICO EL OBJETO O VARIABLE "objeval" DE LA SESSION OSEA YO PIENSO QUE SE DEBIO HACER ALGO COMO ESTO :
request.getSession().setAttribute("lisAlumOK",lisAlumOK);


//Lo que hace serviceDao.DeterminarAlumnoEvaluacion es :
recorrer la lista y lo compra con el codEvaluacion y te devuelve un objeto de tipo AlumnoEvalu ;




Despues hago esto en POST :

1
2
3
4
5
6
7
List<alumno >  lisAlumOK= (List<alumno >) request.getSession().getAttribute("lAlumno");
 
int nota = 12;
 
for(alumno alu : lisAlumOK){
  alu.getObjeval().setValCalifi(nota);
}

ACA LO OTRA CURIOSIDAD ES QUE CUANDO SETEO O MODIFICO la nota de objeto "objeval" TAMBIEN SE MODIFICA O SETEA DE LA LISTA VARIABLE "lisEvalua" NO ENTIENDO POR QUE ??


DE VERDAD ME AYUDARIAS MUCHO !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar