Foros del Web » Programación para mayores de 30 ;) » Java »

Duda: Struts + Ajax

Estas en el tema de Duda: Struts + Ajax en el foro de Java en Foros del Web. Buenas a todos, tengo un pqeuño problemilla con pequeño formulario con struts: Lo que trato de hacer es tener 3 radiobuttons y un boton, segun ...
  #1 (permalink)  
Antiguo 09/02/2009, 16:12
 
Fecha de Ingreso: septiembre-2005
Mensajes: 34
Antigüedad: 18 años, 7 meses
Puntos: 0
Duda: Struts + Ajax

Buenas a todos, tengo un pqeuño problemilla con pequeño formulario con struts:
Lo que trato de hacer es tener 3 radiobuttons y un boton, segun el radiobutton seleccionado al hacer click en el boton que me cargue una pagina jsp dentro de un div (mappeada con struts) dentro de un div.

por parte del html->
...
<tr>
<form name="radios">
<td style="font-size: 11px">
<input type="radio" name="mode" value="computer">Computer<br />
<input type="radio" name="mode" value="user">User<br />
<input type="radio" name="mode" value="role">Role<br />
</td>
<td>
<input type="button" value="Ir" onclick="viewFilters();" />
</td>
</form>
</tr>
...
<div id="step2">
</div>...
...los javascript de ajax...
function viewFilters() {
var ctrl=document.radios.mode;
var sel="";
for(i=0;i<ctrl.length;i++)
if(ctrl[i].checked) sel=ctrl[i].value;
if (sel=="") return;
getRefToDiv('step2').innerHTML = getLoc('/modUno/radioButton.do?mode=' + sel); //getLoc tiene toda la logica de
}
...
function getLoc(loc) {
var req = getRequestObject();
if (!req) return;
req.open('POST', loc, false);
req.send(null);
if (req.status == 200) return req.responseText;
else alert("There was a problem accessing the server :\n" + req.statusText);
return '';
}

-->Por parte de struts (struts config):
<action path="/modUno/radioButton"
type="net.mod.RadioButtonAction"
name="radioButtonActionForm"
attribute="radioButtonActionForm"
scope="session"
input="/modUnoJSP/index.jsp">
<forward name="computer" path="/modUnoJSP/newOption.jsp?mode=computer" />
<forward name="user" path="/modUnoJSP/newOption.jsp?mode=user" />
<forward name="role" path="/modUnoJSP/newOption.jsp?mode=role" />
</action>
-->* el action solo valida el valor del radiobutton y lo pasa como findFordward(...) para que lo reciba el action configurado en el struts-conf...

he tratado de hacerlo de esta manera pero no consigo hacer que el jsp que regresa del controller struts quede en el div....es posible hacerlo o estoy confundiendo algo?

La configuracion de struts si funciona ya que si hago la llamada al.do desde el form si retorna lo que necesito pero en toda la pagina, la idea es tratarlo de meterlo en un div.

Muchas gracias!!!

eledil.
  #2 (permalink)  
Antiguo 11/02/2009, 05:27
Avatar de TresPuntoDos  
Fecha de Ingreso: septiembre-2008
Ubicación: Madrid, España
Mensajes: 242
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Duda: Struts + Ajax

Usas algun framework para las llamadas Ajax?

Te lo digo porque por mi experiencia personal es muy facil integrar Ajax en Struts con jQuery
__________________
Tres punto Dos - Mi Blog sobre J2EE, Java, Struts y Diseño Web
Proyecto BloJ - Crea tu blog Java
  #3 (permalink)  
Antiguo 11/02/2009, 10:28
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: Duda: Struts + Ajax

Hola,

A tu tag "form" agregale el atributo "target" u que tenga como valor el nombre del div.

<form name="radios" target="step2">
...
...
</form>

<div id="step2" name="step2">
</div>...

Pruebalo, y si no funciona intenta con un "iframe", con eso si funciona
<iframe name="step2" src="" frameborder="0" width="100%" height="260px" scrolling="auto"></iframe>

saludos!
  #4 (permalink)  
Antiguo 11/02/2009, 15:46
 
Fecha de Ingreso: septiembre-2005
Mensajes: 34
Antigüedad: 18 años, 7 meses
Puntos: 0
De acuerdo Respuesta: Duda: Struts + Ajax

buenas, gracias por las respuestas,

TresPuntoDos:

no, no uso ningun framework, de todas maneras voy a investigar el uso de jquery con struts...gracias

Bunburyscom:

Hola, si probé con el target en un div y no me funcionó, pero si funcionó con el iframe...

gracias!
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:17.