Makalah ini terutama mempelajari penjelasan terperinci dari tombol radio dari kerangka struts2 dan contoh terkait konversi jenis enumerasi, sebagai berikut.
Menggunakan tag Struts2, tidak ada keraguan bahwa Anda perlu memperkenalkan pustaka tag terlebih dahulu:
<%@ taglib awalan = "s" uri = "/struts-tags"%>
Asumsikan bahwa nilai daftar di kotak radio radio adalah koleksi peta:
<S: Daftar Radio = "#{'Man': 'Male', 'Women': 'Female'}" name = "gender" listKey = "key" listValue = "value" value = "'man'" tema = "sederhana"/> Catatan:
1. Atribut nama juga merupakan atribut nama yang sesuai dengan kode HTML.
2. Atribut ListKey sesuai dengan atribut nilai kode HTML.
3. Atribut ListValue sesuai dengan atribut Label Kode HTML.
4. Atribut nilai mengacu pada: Ketika nilai nilai cocok dengan nilai dalam set, itu dipilih (jika nilai nilai adalah string, Anda perlu menambahkan kutipan tunggal).
Setelah eksekusi, itu akan diuraikan ke dalam kode HTML, seperti yang ditunjukkan pada gambar:
Mari kita jelaskan melalui suatu kasus:
Saat memodifikasi pengguna, lompat ke antarmuka modifikasi dan menggemakan jenis kelamin pengguna di antarmuka modifikasi. Di sini kami menggunakan enumerasi untuk mewakili jenis kelamin.
Antarmuka pengguna awal:
Struktur Proyek:
Antarmuka pengguna:
<body> <Form Action = "enumaction_test.action" Method = "Post"> Pilih Jenis Kelamin: <S: Radio Daftar = "#{'Man': 'Pria', 'Wanita': 'Wanita'}" Name = "Gender" ListKey = "Key" ListValue = "Value" Value = "'Manusia" "Teme =" Simple "/<" Kunci "<Input =" Value "Value" Nilai "" TEMPA "TEMPA" TEMPE = "/"/<"/<" KEKUTIP = "KRIMIT =" Nilai "<" "" "" THEPET "TOPE =" THEPET = "</" KEKUTIP = "</" </"</" KRIMET = "KRIMIT =" KROMET "<" KROMIT = "<" "" "" teme "teme =" teme = "teme"Kode Tindakan Latar Belakang:
Public Class Enumaction {/*Tentukan gender, default adalah pria*/gender privat gender = gender.man; getgender gender publik () {return gender;} public void setgender (gender gender) {this.gender = gender;}/*Metode tes*/tes string publik () {return "Success";}} Catatan: Karena kami menggunakan tipe enum, kami perlu melakukan konversi tipe (metode konversi spesifik disebutkan di blog sebelumnya).
Menghitung Kode Kelas Konversi Jenis:
kelas publik enumtypeConverter memperluas defaultTypeConverter {@suppressWarnings ("rawTypes") @Override public object convertValue (peta <string, objek> konteks, nilai objek, kelas totype) {/*convert dari depan ke backend, dari string ke tipe tipe*/if (totype == gender. (String[]) value;return Gender.valueOf(params[0]);} else if (toType == String.class){/*Passes from the background action to the foreground, that is, converting the Gender type to String type*//*Firmly converting the value to Gender*/Gender gender = (Gender) value;return gender.toString();}return null;}}Tentukan file properti untuk konversi tipe global:
com.lixue.bean.gender = com.lixue.converter.enumtypeConverter
Halaman Hasil Setelah Jump (Antarmuka Modifikasi Pengguna):
<body> Jenis Kelamin Anda: <S: Daftar Radio = "#{'Man': 'Pria', 'Wanita': 'Wanita'}" Name = "Gender" ListKey = "Key" ListValue = "Value" Value = "Gender" Tema = "Sederhana"/> </Body>Catatan: Bagaimana cara menggemakan jenis kelamin yang saat ini dipilih di antarmuka modifikasi? Kuncinya adalah melihat nilai nilai. Saya menulis jenis kelamin dalam kode di atas. Faktanya, jenis kelamin ini adalah properti yang ditentukan dalam tindakan tersebut. Ketika kami berbicara tentang OGNL di artikel sebelumnya, kami mengatakan bahwa properti dalam tindakan akan disimpan dalam tumpukan nilai. Kami mengambil properti dalam tumpukan nilai dan dapat diperoleh langsung melalui nama atribut, tanpa mendapatkannya melalui bentuk #namespace. Setelah mendapatkannya, cocokkan dengan koleksi peta sebelumnya untuk menentukan apakah akan memeriksanya.
1. Beberapa orang mungkin memiliki pertanyaan, mengapa Listkey dapat ditulis langsung di kunci, dan ListValue ditulis langsung pada nilainya.
Jawaban: Ketika Struts2 mem -parsing koleksi daftar di tag <S: Radio>, ia menggunakan iterator. Fungsi iterator adalah menyimpan hasil (setiap kali objek entri) di bagian atas tumpukan nilai tumpukan setiap kali loop adalah untuk mendapatkan nilai. Oleh karena itu, saat menggunakan ekspresi OGNL, Anda dapat secara langsung menggunakan atribut objek (nama atribut entri adalah kunci dan nilai) nama untuk mendapatkan nilainya. Tidak perlu menggunakan # namespace. Siswa yang tidak memahami ekspresi OGNL dapat membaca artikel sebelumnya.
2. Kami akan menemukan bahwa saat menulis tag, kami selalu menulis tema atribut. Fungsi dari atribut ini adalah untuk menghindari struts2 menghasilkan beberapa kode yang tidak perlu saat memarsing tag, tetapi perlu untuk menulisnya setiap saat. Bukankah itu penipuan? Bahkan, kami dapat mengkonfigurasi file konstan di struts.xml untuk mencapai efek:
<!-gaya tag tag struts2-> <name konstan = "struts.ui.theme" value = "sederhana" />
Pembelajaran kerangka kerja struts ini agak seperti melihat langit biru melalui awan dan kabut. Saya memiliki pemahaman yang lebih jelas tentang kerangka kerja Java, musim semi, mybatis, dll., Dan semua hal terhubung. . .
Di atas adalah semua konten artikel ini tentang penjelasan terperinci dari tombol radio Struts2 dan contoh kode konversi dari jenis enumerasi. 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!