Foros del Web » Programando para Internet » Javascript »

agregar atributos a objeto java desde javaScript

Estas en el tema de agregar atributos a objeto java desde javaScript en el foro de Javascript en Foros del Web. hola mi problema es el siguiente tengo un javaScript que recupera datos de una tabla html celda por celda, y quiero que cada fila sea ...
  #1 (permalink)  
Antiguo 29/12/2010, 15:50
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 14 años
Puntos: 1
Pregunta agregar atributos a objeto java desde javaScript

hola mi problema es el siguiente tengo un javaScript que recupera datos de una tabla html celda por celda, y quiero que cada fila sea un objeto para esto itero las celdas de cada fila y saco el valor que contienen, el problema es que no puedo setearle los valores a un objeto de java con un scriplet, el objeto va de esta forma:

"Articulo(long pdi, long upc, String descripcion, float gramaje, int venta, boolean generico)."

y cuando quiero insertarle el valor me muestra este error: "The method parseLong(String) in the type Long is not applicable for the arguments ()"

este es mi codigo de javaScript cabe aclarar que mi aplicacion esta basada en el framework de struts, si alguien me pudiera ayudar se los agradeceria mucho o si saben otra forma de hacerlo, lo unico que necesito es poder meter los valores que saco de la tabla a un objeto java para mandarlo al Action.
saludos

<script>
$(document).ready(function(){
document.getElementById("btnguardar").onclick=func tion(){
// obtenemos el elemento sobre el que se ha hecho click
<%
Articulo art = new Articulo();
ArrayList lista;
%>
var filas=document.getElementById("tst2").getElementsB yTagName("TR");
if(filas.length!=0){
for(var i=0; i<filas.length; i++){
alert( filas[i].innerHTML );
var celdas=filas[i].getElementsByTagName("TD");
// tomamos la primera celda TD del tr (si existe)
if( celdas.length!=0 ){
for(var j=0; j<celdas.length; j++){
// devolvemos su contenido
if(j=0) {<%art.setPdi(Long.parseLong(%>celdas[j].innerHTML<%)); long ih = art.getPdi(); System.out.println(ih);%>}
if(j=1) {<%art.setUpc(Long.parseLong(%>celdas[j].innerHTML<%));%>}
if(j=2) {<%art.setDescripcion((String)%>celdas[j].innerHTML<%);%>}
if(j=3) {<%art.setGramaje(Float.parseFloat(%>celdas[j].innerHTML<%));%>}
if(j=4){<%art.setGramaje(Integer.parseInt(%>celdas[j].innerHTML<%));%>}
alert( celdas[j].innerHTML );

//todavia no esta terminado pero se supone que cuando tenga los valores en el objeto el objeto lo voy a agregar a un arraylist para enviarlo al Action despues a un DAO para guardarlos en la base de datos tal y como me los mostro en la tabla html en pantalla.

}
}
}
}
}
});

:partido::partido:
  #2 (permalink)  
Antiguo 29/12/2010, 15:59
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: agregar atributos a objeto java desde javaScript

los scriptlets de java se ejecutan en el servidor, javascript se ejecuta en el cliente, no puedes intercambiar información de la forma:

if(j=0) {<%art.setPdi(Long.parseLong(%>celdas[j].innerHTML<%)); long ih = art.getPdi(); System.out.println(ih);%>}

simplemente porque ambos lenguajes tienen diferente ámbito de ejecución, el método parseLong no obtiene NADA porque javascript se ejecuta en el cliente y no puedes obtener celdas[j].innerHTML porque el DOM no se ha cargado, ni se cargará hasta que finalice java y envié el HTML al cliente, es allí donde javascript se ejecuta.

necesitarías recurrir a técnicas como AJAX para enviar peticiones al servidor sin recargar la página
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 29/12/2010, 21:56
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 14 años
Puntos: 1
Respuesta: agregar atributos a objeto java desde javaScript

muchisimas gracias por tu rapida respuesta, entonces lo buscare en los foros de ajax
saludos

Etiquetas: java, objetos, struts
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:47.