Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Struts 2 + AJAX + JSON

Estas en el tema de Struts 2 + AJAX + JSON en el foro de Frameworks JS en Foros del Web. Hola, llevo unos días intentando hacer unas pruebas con el plugin de Ajax que tiene Struts2 y no consigo resultados... Lo que estoy intentando utilizar ...
  #1 (permalink)  
Antiguo 14/05/2007, 13:30
 
Fecha de Ingreso: mayo-2007
Mensajes: 1
Antigüedad: 17 años
Puntos: 0
Struts 2 + AJAX + JSON

Hola,
llevo unos días intentando hacer unas pruebas con el plugin de Ajax que tiene Struts2 y no consigo resultados...

Lo que estoy intentando utilizar es el tag "autocompleter" para que me salgan diferentes opciones al poner en un campo de texto una palabra. Hasta ahora, sólo me ha funcionado si el valor devuelto por la clase JSONUser.java es un String, pero si pongo cualquier otro valor (JSONArray, JSONObject, HashMap, List, etc.) no me funciona, y me sale el error: "FATAL exception raised: [object Error]" de javascript.

He visto en los manuales que la información que debería mandarse debería tener la estructura:
[["a", "b"] , ["c", "d"]]
pero a mí no me funciona.

Os agradecería mucho si podéis echarme una mano.

Mi código es el siguiente:

------ struts.xml ------
<struts>
[...]
<package name="json-sdp" extends="json-default">
<action name="completar" class="prueba.user.JSONUser">
<result name="success" type="json" />
</action>
</package>
[...]
</struts>

------JSONUser.java ------
package com.indra.sdp.webadmin.control.user;

import java.util.*;
import java.io.OutputStreamWriter;

import com.opensymphony.xwork2.Action;
import com.indra.sdp.webadmin.model.AdminUser;
import com.indra.sdp.webadmin.dao.AdminUserDAO;
import net.sf.json.*;

public class JSONUser {

private JSONArray str3 = new JSONArray();
private JSONArray str31 = new JSONArray();
private JSONArray str32 = new JSONArray();
private JSONArray str33 = new JSONArray();

public String execute() {
str31.put("nombre");
str31.put("paco");
str32.put("nombre");
str32.put("pepe");
str3.put(str31);
str3.put(str32);

System.out.println(str3);

return Action.SUCCESS;
}

public void setStr (JSONArray str3) {
this.str3 = str3;
}

public JSONArray getStr() {
return str3;
}
}

------ index.jsp ------

<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
[...]
<body>
<s:url action="list" id="descrsUrl"/>
<s:url action="completar" id="completarUrl" />
<div style="width: 300px;border-style: solid">
<p>User Data</p>
<s:form action="save" validate="true">
<s:textfield id="userId" name="user.userId" cssStyle="display:none"/>
<s:textfield id="login" label="Login" name="user.login"/>
<s:password id="passwd" label="Passwd" name="user.passwd"/>
<s:autocompleter theme="ajax" href="%{completarUrl}" showDownArrow="false" name="nombre" />
<s:submit theme="ajax" targets="users" notifyTopics="/save"/>
</s:form>
</div>
<div style="width: 300px;border-style: solid">
<div style="text-align: right;">
<s:a theme="ajax" notifyTopics="/refresh">Refresh</s:a>
</div>
<s:div id="users" theme="ajax" href="%{descrsUrl}" listenTopics="/refresh"/>
</div>
<br/>
</body>
</html>

----------------FIN DE CODIGO-------------

Muchas gracias,
un saludo.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:44.