นี่คือรหัสที่สมบูรณ์สำหรับการดำเนินการทั้งหมด:
แพ็คเกจ cn.ysh.studio.struts2.json.demo.action; นำเข้า java.io.ioException; นำเข้า java.io.printwriter; นำเข้า java.util.hashmap; นำเข้า java.util.map; นำเข้า Javax.servlet.http.httpservletResponse; นำเข้า org.apache.struts2.servletactionContext; นำเข้า net.sf.json.jsonobject; นำเข้า cn.ysh.studio.struts2.json.demo.bean.user; นำเข้า com.opensymphony.xwork2.actionsupport; ผู้ใช้ระดับสาธารณะขยายการดำเนินการ { / ** * * / ส่วนตัวคงที่สุดท้าย Long SerialVersionUid = 1L; // วัตถุที่จะถูกทำให้เป็นอนุกรมโดย struts2 ลงในแผนที่สตริง JSON ส่วนตัว <String, Object> datamap; / *** constructor*/ public userAction () {// เริ่มต้นวัตถุแผนที่ DataMap = new HashMap <String, Object> (); } / *** ทดสอบส่งคืนข้อมูล JSON ในมุมมองผ่านการกระทำ* @return* / สตริงสาธารณะ testbyjsp () {ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ (); user.setId ("123"); user.setName ("JSONActionJSP"); user.setPassword ("123"); user.setsay ("Hello World!"); jsonObject jsonObject = new jsonObject (); jsonObject.Accumulate ("ผู้ใช้", ผู้ใช้); jsonObject.accumulate ("ความสำเร็จ", จริง); // นี่คือข้อมูลในวัตถุคำขอดังนั้นจึงไม่สามารถพิมพ์ = "เปลี่ยนเส้นทาง" ในการกำหนดค่าผลลัพธ์ของ struts servletactionContext.getRequest () SetAttribute ("data", jsonobject.toString ()); กลับมาประสบความสำเร็จ - / *** ทดสอบส่งคืนข้อมูล JSON ใน struts2 โดยค่าเริ่มต้น* @return*/ public String testbycation () {// ข้อมูลใน dataMap จะถูกแปลงเป็นสตริง JSON โดย struts2 ดังนั้นคุณต้องล้างข้อมูลใน datamap.clear (); ผู้ใช้ผู้ใช้ = ผู้ใช้ใหม่ (); user.setId ("123"); user.setName ("JSONActionStruts2"); user.setPassword ("123"); user.setsay ("Hello World!"); datamap.put ("ผู้ใช้" ผู้ใช้); // ใส่ในตัวตนว่าการดำเนินการเป็น datamap.put ที่ประสบความสำเร็จ ("ความสำเร็จ", จริง); // ส่งคืนผลตอบแทนผลลัพธ์ที่ประสบความสำเร็จ; } / *** ส่งคืนข้อมูล JSON ในแบบดั้งเดิมผ่านการกระทำ* @throws iOexception* / โมฆะสาธารณะ doaction () พ่น IOException {httpservletResponse = servletactionContext.getResponse (); // รหัสต่อไปนี้คัดลอกจาก json.java response.setContentType ("ข้อความ/html"); Printwriter Out; out = response.getWriter (); // วัตถุที่จะส่งคืนไปยังผู้ใช้ไคลเอนต์ผู้ใช้ = ผู้ใช้ใหม่ (); user.setId ("123"); user.setName ("JSONActionGeneral"); user.setPassword ("JSON"); user.setsay ("สวัสดีฉันเป็นแอ็คชั่นที่จะพิมพ์ JSON!"); jsonObject json = new JsonObject (); JSON.CACUMULATE ("ประสบความสำเร็จ" จริง); JSON.Accumulate ("ผู้ใช้" ผู้ใช้); out.println (json.toString ()); // เนื่องจากข้อมูล JSON ถูกส่งผ่านในรูปแบบของสตริงปกติในระหว่างกระบวนการส่งมอบเราจึงสามารถแยกสตริงที่สอดคล้องกับข้อกำหนดของ JSON ไวยากรณ์และส่งออกไปยังลูกค้า // ฟังก์ชั่นของสองประโยคต่อไปนี้เป็นฟังก์ชั่นของบรรทัดที่ 38-46 ซึ่งจะส่งคืนวัตถุผู้ใช้ jsonstring = "{/" ผู้ใช้/": {/" id/":/" 123/",/" ชื่อ/":/" jsonactiongeneral/",/" พูด/":/" สวัสดีฉันเป็นแอ็คชั่นเพื่อพิมพ์ json!/",/" รหัสผ่าน/":/" json/"},/" ความสำเร็จ/" // out.println (jsonstring); out.flush (); out.close (); } /*** เมื่อ struts2 serializes แอตทริบิวต์ที่ระบุจะต้องมีวิธี getter สำหรับแอตทริบิวต์นั้น ในความเป็นจริงหากไม่มีแอตทริบิวต์เฉพาะวิธี getter เท่านั้นที่ตกลง * @return */ แผนที่สาธารณะ <String, Object> getDatamap () {return datamap; -ไฟล์การกำหนดค่า struts.xml ที่สมบูรณ์มีดังนี้:
<? xml version = "1.0" การเข้ารหัส = "UTF-8"?> <! Doctype struts สาธารณะ "-// Apache Software Foundation // dtd struts การกำหนดค่า 2.0 // en" "http://struts.apache.org/dtds/struts-2.0.dtd" namespace = "/test test"> <action name = "testByAction" method = "testByAction"> <result type = "JSON"> <!- ที่นี่คุณระบุแอตทริบิวต์ที่จะเป็นอนุกรมโดย struts2 แอตทริบิวต์นี้จะต้องมีวิธีการ getter ที่สอดคล้องกันในการกระทำ-> <!-โดยค่าเริ่มต้นค่าของวิธีการ getter ทั้งหมดที่มีค่าส่งคืนจะถูกจัดลำดับโดยไม่คำนึงว่าวิธีการมีคุณสมบัติที่สอดคล้องกัน-> <param name = "root"> dataMap </param> <!-ระบุว่า datamap จะถูกทำให้เป็นอนุกรม-> <!-ระบุคุณสมบัติใดใน DataMap จะถูกแยกออกจาก DataMAP คุณสมบัติที่ยกเว้นเหล่านี้จะไม่ถูกทำให้เป็นอนุกรมและครึ่งหนึ่งจะไม่ปรากฏในเวลาเดียวกันกับการกำหนดค่าพารามิเตอร์ด้านบน-> <!-<param name = "ExpludeProperties"> ความสำเร็จ </param>-> </result> </action> </package> <package name = "default" extrem = "struts-default" namespace = ">" </action> <action name = "testByJSP" method = "testByJSP"> <ชื่อผลลัพธ์ = "ความสำเร็จ">/actionjsp.jsp </result> </action>
ตัวอย่างข้างต้นของการส่งออกข้อมูล JSON ใน struts2 เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น