Kotak centang banyak digunakan dalam pengembangan web. Sekarang kami menggunakan label kotak centang Struts2 untuk mengimplementasikan beberapa masalah yang sering kami hadapi dalam pengembangan.
Mari kita lihat properti tag ini:
Catatan: ListKey setara dengan atribut nilai di HTML. Nilai ini benar -benar apa yang ingin kami gunakan di latar belakang saat berinteraksi dengan latar belakang; ListValue hanyalah tampilan konten.
Pengguna telah memilih kursus favoritnya dan sekarang perlu memodifikasi kursus yang telah Anda pilih, melompat ke antarmuka modifikasi, dan kemudian menggemakan kursus yang dipilih.
Pengguna telah memilih antarmuka kursus:
Klik tombol dan masukkan antarmuka modifikasi kursus:
Catatan: Di antarmuka modifikasi, Anda harus menggemakan pilihan awal pengguna.
Pengguna telah memilih antarmuka kursus:
<body> Kursus Anda: <Form Action = "CheckBoxAction_test.action" Method = "Post"> <S: Daftar Centang Kotak = "{'Java', '.Kode Tindakan:
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 dihapus dengan cara ini, trim () tidak berfungsi]*/string courstrs = this.courses.replaceall ("", "");/*Tentukan koleksi untuk menyimpan kursus yang dipilih oleh pengguna dalam koleksi*/untuk string> string: string = arraylist baru <string> ();/*travel*/for: string: string = arraylist baru <string> ();/*travel*/for: courstrs.split (",")) {Usercourses.add (str);}/*Simpan kursus yang dipilih oleh pengguna dalam konteks konteks ognl*/actionContext.getContext (). Letakkan ("UserCourses", UserCourses);/*Lewati semua kotak centang dalam bentuk koleksi, dan centang, dan orang -orang yang ada, dan menggunakannya, dan menggunakan centang pada bentuknya, dan menggunakan centang dalam bentuk, dan menggunakan centang dalam bentuk, dan menggunakan centang dalam bentuk, dan menggunakan centang dalam bentuk, dan menggunakan centang dalam bentuk dalam bentuk, dan menggunakan centang, ArrayList <String> (); cous.add ("java"); cous.add (". Net"); cous.add ("php"); cous.add ("c ++");/*simpan semua kursus dalam konteks ognl konteks*/actionContext.getContext ().Ubah antarmuka:
<body> Kursus yang Anda pilih adalah: <s: centang nama centang = "courses" list = "#cous" value = "#usercourses" /> </body>
Catatan: Dalam antarmuka modifikasi, sangat mudah untuk mencapai gema hasilnya. Selain itu, kami hanya membutuhkan nama atribut # untuk mendapatkan nilai daftar dan nilai, karena kami telah menempatkan objek di ActionContext, yaitu, konteks OGNLContext dalam tindakan.
Di sini kami menggunakan kasus serupa untuk lebih dekat dengan lingkungan pengembangan simulasi:
Pengguna memilih idolanya (objek Javabean), dan kemudian melompat ke antarmuka modifikasi untuk memodifikasinya, dan menggemakan data dalam antarmuka modifikasi.
Pengguna telah memilih antarmuka idola:
Ubah Antarmuka (untuk mengimplementasikan Echo Data)
Pengguna telah memilih antarmuka idola:
<body> Idol Anda: <Form Action = "CheckboxListAction.action" Method = "Post"> <S: Daftar CHECKBOXLIST = "#{1: 'Deng Xiaoping', 2: 'Xi Jinping', 3: 'Hu Jintao', 4: 'Li Keqiang'}" Nama = "IDS" LISTKY = "KEY" KEY = "Li Keqiang '}}" Name = "IDS" LIST "LIGEK (KEY" = "KEY" KEY "Li KEQIANG'}" value = "Saya ingin memodifikasi"/> </form> </body> Catatan: Daftar adalah kumpulan peta yang dibuat oleh OGNL. ListKey setara dengan nilai nilai riil dari formulir yang dikirimkan. Kami meneruskan kunci peta ke latar belakang untuk diproses.
Objek Javabean:
Pengguna Kelas Publik {/* ID Pengguna*/Private Integer UID;/* Username*/Private String Uname;/* No-Argument Constructor*/Public User () {}/* konstruktor*/pengguna publik (integer uid, string uname) {this.uid = uid; this.uname = uname;} public integer getu (this.uid = uid; this.uname = uname;} public integer (this {this.uid = uid;} string publik getUname () {return uname;} public void setuname (string uname) {this.uname = uname;}}Kode Tindakan:
Public Class CheckboxListAction memperluas ActionSupport {private static final long serialVersionuid = 1l;/* collection Idol*/daftar pribadi <User> pengguna;/* Idol id string*/private string IDS; Daftar publik <user> getUsers () {return pengguna;} public void setUsers (daftar <user> pengguna) {this.users = Users; IDS) {this.ids = ids;} public string execute () {/*Simulate untuk mendapatkan semua idola dari database, lewati mereka ke meja depan untuk ditampilkan, dan kemudian membandingkannya dengan pengguna pilihan*/user = new ArrayList <User> (); Users.add (pengguna baru (1, "" Deng Xiaoping "); Jinping ")); users.add (pengguna baru (3," hu jintao ")); users.add (pengguna baru (4," li keqiang "));/*simpan dalam konteks konteks ognl*/actionContext.getContext (). PUSS*, pengguna", pengguna);/*Tentukan koleksi untuk menyimpan idid id id idid iDs (). ArrayList <Integer> ();/*Dapatkan ID yang dipilih oleh pengguna dan menghapus spasi [harus digunakan dengan cara ini, metode trim () tidak berfungsi]*/ids = ids.replaceall ("", "");/*ke dalam iD (string string: ids.split (",")) {Userids. Konteks ognl Set*/actionContext.getContext (). Put ("userids", userIds); return this.success;}}Ubah antarmuka (menggemakan data):
<body> Idol Anda adalah: <S: centang nama centang = "pengguna" list = "#users" listKey = "uid" listValue = "uname" value = "#userids"/> </body>
Catatan: ListKey dan ListValue adalah dua properti JavaBean. Mereka akan ditempatkan di tumpukan nilai saat iterasi centang, jadi tidak perlu mendapatkannya dalam bentuk #namespace. Anda bisa mendapatkannya secara langsung dengan menggunakan nama atribut. Nilai nilai adalah kumpulan UID di Javabean, yang akan dicocokkan secara otomatis, dan kemudian pilih nilai yang sesuai.
Terlampir:
1. Jika proyek Anda tidak menggunakan Freemaker, tetapi kesalahan yang ditunjukkan pada gambar di bawah ini muncul!
Jadi, selamat, itu karena tag Struts2 Anda tidak memiliki atribut nama! Lai Lai Lai (Pelajaran dari air mata, saya ditipu selama dua jam!)
Di atas adalah semua konten dari artikel ini tentang mempelajari kode instance kotak centang Struts2 dari Java Framework, saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke topik terkait lainnya di situs ini. Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!