ช่องทำเครื่องหมายถูกใช้มากในการพัฒนาเว็บ ตอนนี้เราใช้ฉลากกล่องกาเครื่องหมายของ Struts2 เพื่อใช้ปัญหาบางอย่างที่เรามักจะพบในการพัฒนา
มาดูคุณสมบัติของแท็กนี้กันเถอะ:
หมายเหตุ: ListKey เทียบเท่ากับแอตทริบิวต์ค่าใน HTML ค่านี้เป็นสิ่งที่เราต้องการใช้ในพื้นหลังเมื่อมีปฏิสัมพันธ์กับพื้นหลัง ListValue เป็นเพียงการแสดงเนื้อหา
ผู้ใช้ได้เลือกหลักสูตรที่เขาโปรดปรานและตอนนี้จำเป็นต้องแก้ไขหลักสูตรที่คุณเลือกข้ามไปที่อินเทอร์เฟซการปรับเปลี่ยนแล้วสะท้อนหลักสูตรที่เลือก
ผู้ใช้ได้เลือกอินเทอร์เฟซหลักสูตร:
คลิกปุ่มและป้อนอินเทอร์เฟซการปรับเปลี่ยนหลักสูตร:
หมายเหตุ: ในอินเทอร์เฟซการปรับเปลี่ยนคุณต้องสะท้อนการเลือกเริ่มต้นของผู้ใช้
ผู้ใช้ได้เลือกอินเทอร์เฟซหลักสูตร:
<body> หลักสูตรของคุณ: <form action = "checkboxAction_test.action" method = "post"> <s: checkboxList list = "{'java', '. net', 'php', 'c ++'}" name = "หลักสูตร"/> </br>รหัสดำเนินการ:
ช่องทำเครื่องหมายระดับสาธารณะขยาย ActionsUpPort {ส่วนตัวคงที่สุดท้าย Long SerialVersionUid = 1l;/*หลักสูตรที่ผู้ใช้เลือก (สตริงจำเป็นต้องลบช่องว่าง)*/หลักสูตรสตริงส่วนตัว จะต้องถูกลบออกด้วยวิธีนี้ trim () ไม่ทำงาน]*/สตริง courstrs = this.courses.replaceall ("", "");/*กำหนดคอลเลกชันเพื่อจัดเก็บหลักสูตรที่ผู้ใช้เลือกในคอลเลกชัน*/รายการ <string> usercourses = new ArrayList <String> () courstrs.split (",")) {usercourses.add (str);}/*บันทึกหลักสูตรที่ผู้ใช้เลือกในบริบท OGNL บริบท*/actionContext.getContext () ใส่ ("usercourses" arraylist <String> (); cous.add ("java"); cous.add (". net"); cous.add ("php"); cous.add ("c ++");/*บันทึกทุกหลักสูตรในบริบทของ ognlแก้ไขอินเทอร์เฟซ:
<body> หลักสูตรที่คุณเลือกคือ: <s: checkboxList name = "courses" list = "#cous" value = "#usercourses" /> </body>
หมายเหตุ: ในอินเทอร์เฟซการปรับเปลี่ยนมันง่ายมากที่จะบรรลุผลเสียงสะท้อนของผลลัพธ์ นอกจากนี้เราต้องการเพียงชื่อแอตทริบิวต์ # เพื่อให้ได้ค่าของรายการและค่าเนื่องจากเราได้วางวัตถุไว้ใน ActionContext นั่นคือบริบท OGNLContext ในการกระทำ
ที่นี่เราใช้กรณีที่คล้ายกันเพื่อให้ใกล้ชิดกับสภาพแวดล้อมการพัฒนาแบบจำลอง:
ผู้ใช้เลือกไอดอลของเขาหรือเธอ (วัตถุ javabean) จากนั้นกระโดดไปที่อินเทอร์เฟซการปรับเปลี่ยนเพื่อแก้ไขและสะท้อนข้อมูลในส่วนต่อประสานการปรับเปลี่ยน
ผู้ใช้ได้เลือกอินเทอร์เฟซไอดอล:
แก้ไขอินเทอร์เฟซ (เพื่อใช้งาน Data Echo)
ผู้ใช้ได้เลือกอินเทอร์เฟซไอดอล:
<body> ไอดอลของคุณ: <form action = "checkboxListaction.action" method = "post"> <s: checkboxList list = "#{1: 'Deng Xiaoping', 2: 'xi jinping', 3: 'hu jintao', 4: value = "ฉันต้องการแก้ไข"/> </form> </body> หมายเหตุ: รายการเป็นชุดของแผนที่ที่สร้างโดย OGNL ListKey เทียบเท่ากับมูลค่าที่แท้จริงของแบบฟอร์มที่ส่งมา เราส่งรหัสแผนที่ไปยังพื้นหลังสำหรับการประมวลผล
วัตถุ Javabean:
ผู้ใช้ระดับสาธารณะ {/* รหัสผู้ใช้*/จำนวนเต็มส่วนตัว uid;/* ชื่อผู้ใช้*/uname uname;/* no-argument constructor*/ผู้ใช้สาธารณะ () {}/* constructor*/ผู้ใช้สาธารณะ uid) {this.uid = uid;} สตริงสาธารณะ getUname () {return uname;} public void setuname (uname string) {this.uname = uname;}}}รหัสดำเนินการ:
checkboxListaction ระดับสาธารณะขยายการกระทำ asced {private static final final long long serialversionuid = 1l;/* คอลเลกชันไอดอล*/รายการส่วนตัว <ผู้ใช้> ผู้ใช้;/* idol id String*/ids สตริงส่วนตัว; รายการสาธารณะ <user> getusers () {return users; setIds (ids สตริง) {this.ids = ids;} สตริงสาธารณะดำเนินการ () {/*จำลองเพื่อให้ได้ไอดอลทั้งหมดจากฐานข้อมูลส่งผ่านไปยังแผนกต้อนรับเพื่อแสดงแล้วเปรียบเทียบกับผู้ใช้ที่เลือก*/ผู้ใช้ใหม่) jinping ")); users.add (ผู้ใช้ใหม่ (3," hu jintao ")); users.add (ผู้ใช้ใหม่ (4," li keqiang "));/*บันทึกในบริบท ognl บริบท*/actionContext.getContext () arraylist <integer> ();/*รับ ID ที่เลือกโดยผู้ใช้และลบช่องว่าง [ต้องใช้ในวิธีนี้วิธีการตัดแต่ง () ไม่ทำงาน]*/ids = ids.replaceall ("", ""); ชุดบริบท ognl*/actionContext.getContext (). ใส่ ("userIds", userIds); return this.success;}}แก้ไขอินเทอร์เฟซ (สะท้อนข้อมูล):
<body> ไอดอลของคุณคือ: <s: checkboxList name = "users" list = "#users" listKey = "uid" listValue = "Uname" value = "#userIds"/> </body>
หมายเหตุ: ListKey และ ListValue เป็นคุณสมบัติสองประการของ Javabean พวกเขาจะถูกวางไว้ในสแต็คค่าเมื่อทำซ้ำการทำเครื่องหมายในช่องทางการทำซ้ำดังนั้นจึงไม่จำเป็นต้องได้รับในรูปแบบของ #Namespace คุณสามารถรับได้โดยตรงโดยใช้ชื่อแอตทริบิวต์ ค่าของค่าคือการรวบรวม UIDs ใน Javabean ซึ่งจะถูกจับคู่โดยอัตโนมัติจากนั้นเลือกค่าที่เกี่ยวข้อง
ที่แนบมา:
1. หากโครงการของคุณไม่ได้ใช้ Freemaker แต่ข้อผิดพลาดที่แสดงในรูปด้านล่างจะปรากฏขึ้น!
ดังนั้นขอแสดงความยินดีเป็นเพราะแท็ก struts2 ของคุณไม่มีแอตทริบิวต์ชื่อ! - - - (บทเรียนจากน้ำตาฉันถูกโกงโดยสองชั่วโมง!)
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการเรียนรู้รหัสอินสแตนซ์ช่อง Struts2 ของกรอบ Java Framework ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!