Berikut adalah kode lengkap untuk seluruh tindakan:
paket cn.ysh.studio.struts2.json.demo.action; impor java.io.ioException; impor java.io.printwriter; impor java.util.hashmap; impor java.util.map; impor javax.servlet.http.httpservletResponse; impor org.apache.struts2.servletactionContext; impor net.sf.json.jsonobject; impor cn.ysh.studio.struts2.json.demo.bean.user; impor com.opensymphony.xwork2.actionsupport; Public Class UserAction memperluas ActionSupport { / ** * * / private static final long serialVersionuid = 1l; // Objek yang akan diserialisasi oleh Struts2 ke dalam peta private string JSON <String, Object> datamap; / *** konstruktor*/ UserAction publik () {// inisialisasi objek peta datamap = new HashMap <string, object> (); } / *** tes mengembalikan data json dalam tampilan melalui tindakan* @return* / public string testByJsp () {user user = new user (); user.setid ("123"); user.setname ("jsonactionjsp"); user.setPassword ("123"); user.setsay ("Halo dunia!"); JsonObject jsonObject = new jsonObject (); jsonObject.acumulate ("pengguna", pengguna); jsonObject.acumulate ("Success", True); // Berikut adalah data dalam objek permintaan, jadi tidak ada type = "redirect" dalam konfigurasi hasil struts servletActionContext.getRequest (). Setattribute ("data", jsonobject.toString ()); Sukses kembali; }; / *** Tes Mengembalikan data JSON di Struts2 Secara default* @return*/ public string testByAction () {// Data dalam datamap akan dikonversi ke string JSON oleh Struts2, jadi Anda harus terlebih dahulu menghapus data di dalamnya datamap.clear (); Pengguna pengguna = pengguna baru (); user.setid ("123"); user.setname ("JSonActionstruts2"); user.setPassword ("123"); user.setsay ("Halo dunia!"); datamap.put ("pengguna", pengguna); // Masukkan identitas apakah operasi berhasil datamap.put ("sukses", true); // kembalikan hasil yang berhasil kembali; } / *** Mengembalikan data JSON dengan cara tradisional melalui tindakan* @throws ioException* / public void doaction () melempar ioException {httpservletResponse response = servletActionContext.getResponse (); // Kode berikut yang disalin dari JSON.java response.setContentType ("Teks/html"); Printwriter keluar; out = response.getWriter (); // objek yang akan dikembalikan ke pengguna pengguna klien = pengguna baru (); user.setid ("123"); user.setname ("jsonactionGeneral"); user.setPassword ("json"); user.setsay ("Halo, saya tindakan untuk mencetak json!"); JsonObject json = new jsonobject (); json.accumulate ("sukses", benar); json.accumulate ("pengguna", pengguna); out.println (json.tostring ()); // Karena data JSON dilewatkan dalam bentuk string normal selama proses pengiriman, kami juga dapat secara manual menyambungkan string yang mematuhi spesifikasi sintaks JSON dan mengeluarkannya ke klien // fungsi dari dua kalimat berikut adalah sama dengan fungsi baris 38-46, yang akan mengembalikan objek pengguna dan bidang keberhasilan ke klien // string klien // string jsonstring = "{/" user/": {/" id/":/" 123/",/" name/":/" jsonactionGeneral/",/" say/":/" halo, saya tindakan untuk mencetak json!/",/" kata sandi/":/" json/"},/" sukses/": true}"; // out.println (jsonstring); out.flush (); out.close (); } /*** Ketika Struts2 membuat serial atribut yang ditentukan, harus ada metode pengambil untuk atribut itu. Bahkan, jika tidak ada atribut, hanya metode pengambil yang ok * @return */ peta publik <string, objek> getDatamap () {return datamap; }}File konfigurasi struts.xml lengkap adalah sebagai berikut:
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype Struts Public "-// Apache Software Foundation // DTD Struts Configuration 2.0 // en" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <pingruts = "jari =" JABON = "JUSPERPAUD =" JUSPERPAUD = " namespace = "/test"> <action name = "testByaction" method = "testByaction"> <result type = "json"> <!- Di sini Anda menentukan atribut yang akan diserialisasi oleh struts2. This attribute must have a corresponding getter method in the action --> <!-- By default, the values of all getter methods with return values will be sequenced, regardless of whether the method has corresponding properties --> <param name="root">dataMap</param> <!-- Specify whether to serialize empty properties --> <!-- <param name="excludeNullProperties">true</param> --> <!-- Specify which properties in the DATAMAP akan diserialisasi-> <!-Tentukan properti mana dalam DATAMAP akan dikecualikan dari DATAMAP. These excluded properties will not be serialized, and half will not appear at the same time as the above parameter configuration --> <!-- <param name="excludeProperties"> SUCCESS </param> --> </result> </action> </package> <package name="default" extends="struts-default" namespace="/"> <action name="testJSONFromActionByGeneral" method="doAction"> </action> <action name = "testbyjsp" method = "testbyjsp"> <result name = "success">/actionjsp.jsp </RAEST> </ action> </package> </struts>
Contoh output data JSON di atas dalam aksi di Struts2 adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.