ฉันเพิ่งพบปัญหาที่ฉันต้องส่งผ่านกลุ่มวัตถุในโครงการ ในอดีตฉันเคยพบกรณีที่วัตถุหนึ่งวัตถุหลายชิ้นหรือชุดของอาร์เรย์ถูกส่งผ่านมันเป็นเรื่องยากที่จะดูว่ากลุ่มของวัตถุถูกส่งผ่านดังนั้นมันจึงรู้สึกยุ่งยากเล็กน้อยเมื่อคุณพบปัญหานี้ ฉันคิดว่ามันเป็นไปได้ที่จะแก้ปัญหาด้วยวิธีนี้
@RequestMapping ("save1") โมฆะสาธารณะ save1 (แผนแผน, รายการ <planitem> planitems, httpservletResponse การตอบสนอง) {// todo เพิ่มเติม ... addMessage (การตอบสนอง, message_type_success, null, message_success);};};แต่ต่อมาฉันพบว่าฉันโง่และไร้เดียงสาเกินไป วิธีนี้ไม่สามารถผูกพารามิเตอร์ได้เลย บางคนบอกว่าฤดูใบไม้ผลิต้องเสียสละส่วนหนึ่งของการแสดงเมื่อเทียบกับเสา แต่ฉันไม่มีการวิจัยเกี่ยวกับฤดูใบไม้ผลิและ struts ฉันแค่ใช้มันเป็นเครื่องมือ ดังนั้นฉันไม่รู้ว่าทำไม ไปไกลกลับไปที่หัวข้อ มีวิธีแก้ปัญหาอื่น ๆ ออนไลน์ นี่คือวิธี
รายการบุคคลสาธารณะ {รายการส่วนตัว <Person> บุคคล; รายการสาธารณะ <Person> getPerson () {บุคคลกลับ; } โมฆะสาธารณะ setperson (รายการ <person> บุคคล) {this.person = บุคคล; - ในคอนโทรลเลอร์:
@RequestMapping (value = "xxx", method = requestMethod.post) การทดสอบโมฆะสาธารณะ (บุคคลที่เป็นบุคคล) {// transpate person}}} หน้าควรเขียนเช่นนี้:
<form id = "form" action = "test/test.do" method = "post"> <input type = "text" name = "person [0] .username" value = "jobs"/> <อินพุตประเภท = "text" name = "person [0] name = "person [1] .age" value = "21"/> <br/> <input type = "ส่ง"> <form>
แต่ฉันลองวิธีนี้ แต่ก็ยังไม่ทำงาน ฉันไม่รู้ว่าฉันโง่เกินไปหรือทำไม
หลังจากการบิดและเลี้ยวหลายครั้งพบวิธีแก้ปัญหาอื่น ผ่านสตริง JSON ของรายการรายการไปยังพื้นหลัง หลังจากพื้นหลังได้รับพารามิเตอร์ จากนั้นแปลง JSON เป็นวัตถุ รหัสส่วนหน้าได้รับการยกเว้นรหัสพื้นหลังมีดังนี้
@RequestMapping ("บันทึก") โมฆะสาธารณะบันทึก (แผนแผน, สตริง planitemjson, การตอบสนอง httpservletResponse) {รายการ <planitem> parsearray = json.parsearray (planitemjson, planitem.class); // สิ่งที่คุณต้องการ addMessage (การตอบสนอง, message_type_success, null, message_success);}แต่มีปัญหาเล็กน้อยเกี่ยวกับสิ่งนี้นั่นคือสตริง JSON จะถูกเพิ่มโดยอัตโนมัติด้วยเครื่องหมายคำพูดสองครั้งในส่วนสำคัญในส่วนก่อนหน้า เมื่อถอดรหัสในพื้นหลังคำพูดสองครั้งจะถูกหลบหนีเป็น ""; "ดังนั้นคุณต้องแปลง" ";" ถึงคำพูดสองครั้ง นั่นคือรหัสสุดท้ายคือ
@requestmapping ("บันทึก") โมฆะสาธารณะบันทึก (แผนแผน, สตริง planitemjson, httpservletResponse) {planitemjson = planitemjson.replaceall ("", "/" "); message_type_success, null, message_success);}หลังจากการทดสอบวิธีนี้ยังใช้งานได้กับวัตถุรายการและรายการรายการ
PS: เพื่อปรับปรุงความทนทานของโปรแกรมคุณสามารถตรวจสอบ JSON ได้หลังจากหลบหนีวัตถุ JSON ซึ่งหลีกเลี่ยงข้อผิดพลาดในการเปลี่ยนเป็นวัตถุ Java
หรือใช้วิธีการที่มีความรุนแรงมากขึ้นในการดำเนินการลองใช้งานเมื่อ JSON หันไปทำรายการ
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น