AJAX - Struts2 + AJAX + JSON

 
Vista:

Struts2 + AJAX + JSON

Publicado por Fernando (1 intervención) el 14/05/2007 19:24:26
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.
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

RE:Struts2 + AJAX + JSON

Publicado por jvalensa (1 intervención) el 27/12/2007 01:34:57
Necesito documentacion para hacer el manejo de sessions en struts2 ...
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