Kontrollkästchen werden in der Webentwicklung häufig verwendet. Jetzt verwenden wir das Kontrollkästchen von Struts2, um einige Probleme zu implementieren, auf die wir häufig in der Entwicklung stoßen.
Schauen wir uns die Eigenschaften dieses Tags an:
Hinweis: ListKey entspricht dem Wertattribut in HTML. Dieser Wert ist wirklich das, was wir im Hintergrund verwenden möchten, wenn wir mit dem Hintergrund interagieren. ListValue ist nur eine Anzeige von Inhalten.
Der Benutzer hat seinen bevorzugten Kurs ausgewählt und muss nun den von Ihnen ausgewählten Kurs ändern, zur Änderungsschnittstelle springen und dann den ausgewählten Kurs wiederholen.
Der Benutzer hat die Kursschnittstelle ausgewählt:
Klicken Sie auf die Schaltfläche und geben Sie die Schnittstelle zur Änderung der Kurs ein:
Hinweis: In der Änderungsschnittstelle müssen Sie die erste Auswahl des Benutzers wiederholen.
Der Benutzer hat die Kursschnittstelle ausgewählt:
<body> Your course: <form action="checkBoxAction_test.action" method="post"> <s:checkboxlist list="{'Java','.Net','PHP','C++'}" name="courses" /></br> <input type="submit" value="I want to modify"/> </form> </body>Aktionscode:
public class CheckBoxAction extends ActionSupport {private static final long serialVersionUID = 1L;/*The course selected by the user (string, need to remove spaces)*/private String courses;public String getCourses() {return courses;}public void setCourses(String courses) {this.courses = courses;}public String test(){/*Delete spaces [The spaces must Auf diese Weise entfernt werden, funktioniert TRIM () nicht]*/String Courstrs = this.course.replaceAll ("", "");/*Definieren Sie eine Sammlung, um die vom Benutzer ausgewählten Kurse in der Sammlung zu speichern Courstrs.split (",")) {UserCourses.Add (str);}/*Speichern Sie die vom Benutzer ausgewählten Kurse im OGNL -Kontext -Kontext*/actionContext.getContext (). ArrayList <string> (); cous.add ("java"); cous.add (". Net"); cous.add ("php"); cous.add ("c ++");/*retten Sie alle Kurse im OGNL -Kontext Kontext*/actioncontext.getContext ().Ändern Sie die Schnittstelle:
<body> Der Kurs, den Sie ausgewählt haben, lautet: <S: CheckBoxList name = "Kurse" list = "#cous" value = "#userCourses" /> < /body>
Hinweis: In der Änderungsschnittstelle ist es sehr einfach, das Echo des Ergebniss zu erreichen. Darüber hinaus benötigen wir nur den # Attributnamen, um die Werte von Liste und Wert zu erhalten, da wir das Objekt bereits im ActionContext, dh im OGNLContext -Kontext in der Aktion, aufgenommen haben.
Hier verwenden wir einen ähnlichen Fall, um der Simulationsentwicklungsumgebung näher zu kommen:
Der Benutzer wählt sein Idol (ein javabäisches Objekt) aus und springt dann zur Änderung der Änderungsoberfläche und spiegelt die Daten in der Änderungsschnittstelle an.
Der Benutzer hat die IDOL -Schnittstelle ausgewählt:
Ändern Sie die Schnittstelle (um Daten echo zu implementieren)
Der Benutzer hat die IDOL -Schnittstelle ausgewählt:
<Body> Ihr Idol: <Formion Action = "CheckBoxListAction.Action" method = "post"> <s: CheckBoxList List = "#{1: 'Deng Xiaoping', 2: 'xi jinping', 3: 'Hu Jintao', 4: 'li Keqiang'}" name "ids" ids "listkey =" taste "ag. möchte "/> </form> </body> ändern Hinweis: List ist eine Sammlung von Karten, die von OGNL erstellt wurden. ListKey entspricht dem realen Wertwert des eingereichten Formulars. Wir übergeben den Kartenschlüssel zur Verarbeitung an den Hintergrund.
Javabäe -Objekt:
öffentliche Klasse Benutzer {/* Benutzer-ID*/private Integer uid;/* Benutzername*/private String uname;/* no-Argument-Konstruktor*/public user () {}/* constructor*/public user (Integer uid, String uname) {this.uid = uid; this. uid) {this.uid = uid;} public String getuname () {return uname;} public void setuname (String uname) {this.uname = uname;}}Aktionscode:
public class CheckBoxListAction erweitert actionupport {private statische endgültige long serialversionuid = 1l;/* idol collection*/private liste <Benutzer> Benutzer;/* IDOL -ID -String*/private String -IDs; öffentliche Liste <Unters <Benutzer> getUsers () {return user;} public void setSers (Liste <Benutzer> Benutzer) {this. setIDs (String -IDs) {this.ids = ids;} public String execute () {/*simuliert, um alle Idole aus der Datenbank zu erhalten, an die Rezeption zu übergeben, um sie anzuzeigen, und dann mit der Wahl des Benutzers zu vergleichen*/user = new ArrayList <Unter <Unter> (). Nutzer.Add (new user (1, 1, "deng xiaoping")). Jinping ")); users.add (neuer Benutzer (3," hu jintao "); user.add (neuer Benutzer (4," li keqiang ");/*speichern im OGNL -Kontext Kontext*/actioncontext.getContext (). Put (" Benutzer ", Benutzer). ArrayList <Neger> ();/*Holen Sie die vom Benutzer ausgewählten IDs und entfernen Sie Räume [muss auf diese Weise verwendet werden. OGNL -Kontext set*/actioncontext.getContext (). Put ("userIds", userIds); return this.success;}}Ändern Sie die Schnittstelle (echo die Daten):
<body> Ihr Idol ist: <s: CheckBoxList name = "Benutzer" list = "#Benutzer" listkey = "uid" listValue = "uname" value = "#userIds"/> </body>
Hinweis: ListKey und ListValue sind zwei Eigenschaften von Javabäen. Sie werden in den Wertstapel platziert, wenn die Iteration der Checkboxlist -Iteration in Form von #NameSpace erhältlich ist. Sie können es direkt mit dem Attributnamen erhalten. Der Wert des Wertes ist die Sammlung von UIDs in Javabäen, die automatisch übereinstimmt und dann den entsprechenden Wert ausgewählt.
Beigefügt:
1. Wenn Ihr Projekt keinen Freemaker verwendet, aber der in der folgende Abbildung gezeigte Fehler erscheint!
Herzlichen Glückwunsch, es liegt daran, dass Ihr Struts2 -Tag kein Namensattribut hat! ! ! ! (Eine Lektion von Tränen wurde ich zwei Stunden lang betrogen!)
Das obige Inhalt dieses Artikels über das Erlernen des Checkbox -Instanzcodes von Struts2 von Java Framework. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!