Hier ist der vollständige Code für die gesamte Aktion:
Paket cn.ysh.studio.struts2.json.demo.Action; importieren java.io.ioException; Import Java.io.printwriter; import Java.util.hashMap; import Java.util.map; importieren javax.servlet.http.httpServletResponse; import org.apache.struts2.servletactioncontext; import net.sf.json.jsonObject; Import cn.ysh.studio.struts2.json.demo.bean.user; import com.opensymphony.xwork2.actionsupport; öffentliche Klasse UserAction erweitert actionupport { / ** * * / private statische endgültige long serialversionuid = 1l; // Objekt, das von Struts2 in eine private Map <String, Object> Datamap in JSON String serialisiert wird; / *** Konstruktor*/ public userAction () {// initialisieren Sie das MAP -Objekt datamap = new HashMap <String, Object> (); } / *** Test gibt JSON -Daten in einer Ansicht über Action* @Return* / public String testByjsp () {user user = new user () zurück; user.setId ("123"); user.setName ("jsonActionJSP"); user.setPassword ("123"); user.setsay ("Hallo Welt!"); JsonObject jsonObject = new JSONObject (); JsonObject.accumulate ("Benutzer", Benutzer); JsonObject.accumulate ("Erfolg", wahr); // Hier sind ein Daten im Anforderungsobjekt, sodass in der Ergebniskonfiguration von Struts ServletActionContext.getRequest (). Erfolgserfolg; }; / *** Test gibt standardmäßig JSON -Daten in Struts2 zurück. User user = new user (); user.setId ("123"); user.setName ("jsonactionsStruts2"); user.setPassword ("123"); user.setsay ("Hallo Welt!"); Datamap.put ("Benutzer", Benutzer); // Identität eingeben, ob der Vorgang erfolgreich ist, datamap.put ("Erfolg", wahr); // Rückgabe des Ergebnisserfolgs; } / *** JSON -Daten auf die traditionelle Weise durch Action zurückgeben* @throws ioException* / public void doAction () löscht ioException {httpServletResponse response = servletActionContext.getResponse (); // Der folgende Code von json.java response.setContentType ("text/html"); Presseschreiber aus; out = response.getWriter (); // Das Objekt, das an den Client user user user = new user () zurückgegeben wird; user.setId ("123"); user.setName ("jsonActionGeneral"); user.setPassword ("json"); user.setsay ("Hallo, ich bin eine Aktion, um einen JSON zu drucken!"); JsonObject json = new JsonObject (); JSON.Accumulate ("Erfolg", wahr); JSON.Accumulate ("Benutzer", Benutzer); out.println (json.toString ()); // Da JSON-Daten während des Zustellungsprozesses in Form einer normalen Zeichenfolge übergeben werden, können wir auch manuell Strings spleißen, die den JSON-Syntaxspezifikationen entsprechen und sie an den Client ausgeben. // Die Funktion der folgenden zwei Sätze ist die gleiche wie die Funktion der Zeilen 38-46, die ein Benutzerobjekt und ein Erfolgsfeld des Clients // String zurückgeben, und ein Erfolgsfeld des Clients // Zeichenfolge zurückgibt // JSONSONDRING = "{/" Benutzer/": {/" id/":/" 123/",/" name/":/" jsonActaNeral/",/" Say/":/" Hallo, ich bin eine Aktion, um einen json zu drucken! // out.println (jSonstring); out.flush (); out.close (); } /*** Wenn stolz2 ein angegebenes Attribut serialisiert, muss es eine Getter -Methode für dieses Attribut geben. Wenn es kein Attribut gibt, ist nur die Getter -Methode in Ordnung * @return */ public map <string, Object> getDatamap () {return Datamap; }}Die komplette Struts.xml -Konfigurationsdatei lautet wie folgt:
<? Namespace = "/test"> <action name = "testByAction" methode = "testByAction"> <result type = "json"> <!- Hier geben Sie die Attribute an, die von Struts2 serialisiert werden. Dieses Attribut muss eine entsprechende Getter-Methode in der Aktion haben-> <!-Standardmäßig werden die Werte aller Getter-Methoden mit Rückgabewerten sequenziert, unabhängig davon, ob die Methode entsprechende Eigenschaften enthält-> <param name = "root"> datamap </param> <!-Geben Sie an, ob die leeren Eigenschaften-> <!-<Paramap </Paramaps-Förderung "-" Ausschluss "-" exkludeproperties "-Reciity =" exkludeproperties "-Reciity"-"exkludeproperties" -Reciity-exkludeen. Die DatAmap wird serialisiert-> <!-Geben Sie an, welche Eigenschaften in der DataMap von der DataMap ausgeschlossen werden. Diese ausgeschlossenen Eigenschaften werden nicht serialisiert, und die Hälfte erscheint nicht zur gleichen Zeit wie die obige Parameterkonfiguration-> <!-<param name = "excludeProperties"> Erfolg </param>-> </result> </action> </package> <package name = "Standard" extendends = "struts-default" -Methode "/"> <actionname </action> <action name = "testByjsp" methode = "testByjsp"> <result name = "success">/actionjsp.jsp </result> </action> </package> </struts>
Das obige Beispiel für die Ausgabe von JSON -Daten in Aktion in Struts2 ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.