Prinsip menambahkan bagian produk sama dengan menambahkan kategori produk. Lihat artikel: Menambahkan dan memperbarui kategori produk , tetapi lebih rumit daripada kategori produk. Karena ada banyak atribut produk, ada lebih banyak bidang dalam database yang sesuai. Ada juga opsi untuk menambahkan produk untuk mengunggah gambar. Konten kecil ini akan dijelaskan secara terpisah dalam artikel berikutnya, karena ini melibatkan titik pengetahuan, yaitu struts2 mengimplementasikan fungsi unggahan file. Saya tidak akan mengatakan lebih banyak. Sekarang saya akan mulai meningkatkan kode untuk menambahkan bagian produk:
1. Tambahkan produk
1.1 Menambahkan Implementasi UI untuk Produk <BR /> Pertama Lengkapi Kode untuk Menambahkan Bagian Produk di Query.jsp:
Selanjutnya, mari kita lihat implementasi spesifik di save.jsp:
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en"> <html> <head> <%@ termasuk file = "/head.jsp. margin: 10px; } </style> <script type = "text/javascript"> $ (function () {// metode verifikasi khusus mendaftarkan fungsi baru $ .Extend ($. Format: {// Implementasi Fungsi, jika mengembalikan False, verifikasi gagal ke validator: function (value, param) {// Dapatkan nama akhiran dari file saat ini var ext = value.substring (value.lastIndexOf ('.'); arr.length; i ++) {if (ext == arr [i]) return true; into json format and send it to url:'category_query.action', valueField:'id', textField:'type', //The drop-down list shows all product categories panelHeight:'auto', //Adaptive height panelWidth:120,//The drop-down list is a width:120 composed of two components, //The editable:false must be set at the same time, //The drop-down box does not Izinkan pengeditan // ComboBox mewarisi combo mewarisi validateBox, sehingga Anda dapat mengatur verifikasi langsung di sini diperlukan: true, ristermessage: 'silakan pilih kategori'}); $ ("input [name = name]"). ValidateBox ({wajib: true, ristermessage: 'Harap masukkan nama produk'}); $ ("input [name = harga]"). NumberBox ({wajib: true, ristermessage: 'Harap masukkan harga produk', min: 0, presisi: 2, // mempertahankan dua tempat desimal awalan: '$'}); $ ("Input [name = 'FileImage.upload']"). ValidateBox ({wajib: true, ristermessage: 'Harap unggah gambar produk', // atur metode khusus validtype: "format ['gif, jpg, jpeg, png']" // brackets adalah parameter}); $ ("TextArea [name = Commond]"). ValidateBox ({wajib: true, ristermessage: 'Harap masukkan deskripsi sederhana dari produk'}); $ ("TextArea [name = xremark]"). ValidateBox ({wajib: true, ristermessage: 'Harap masukkan deskripsi sederhana dari produk'}); $ ("TextArea [name = xremark]"). ValidateBox ({wajib: true, ristermessage: 'Harap masukkan deskripsi sederhana dari produk'}); // Nonaktifkan verifikasi $ ("#ff"). Formulir ("Disablevalidation"); // Daftarkan acara tombol $ ("#kirim"). Klik (function () {// Aktifkan verifikasi $ ("#ff"). Form ("Enablevalidation"); // Jika verifikasi berhasil, kirimkan data IF ($ ("#ff"). Formulir ("Forma"). 'Product_save.action', function () {// Jika berhasil, tutup orang tua saat ini. $ ("#win"). Window ("tutup"); // peristiwa $ ("#reset"). Klik (function () {$ ("#ff"). Form ("Disablevalidation"); // Reset tidak memerlukan verifikasi formulir // Atur ulang data formulir saat ini $ ("#ff"). Formulir ("reset");}); }); </script> </head> <body> <form id = "ff" Method = "POST" ENCTYPE = "MultiPART/Form-data"> <verv> <label> Nama produk: </label> <input type = "Text" name = "name"/> </Div> <v> <label> Produk Produk: </label <input type = "name": name label ":" name ":" name = ":" name = ":" label> </label> </label </label> <input type "name =" name = "name =" name = "name =" name = "label" <input type="file" name="fileImage.upload" /> </div> <div> <label>Category:</label> <input id="cc" name="category.id"/> </div> <div> <label>Add to recommend:</label> Recommended:</label> Recommended: <input type="radio" name="commend" checked="checked" value="true" /> Not recommended: <input type="radio" name="commend" value="false" /> </div> <div> <label>Is it valid:</label> Listed:<input type="radio" name="open" checked="checked" value="true" /> Removed:<input type="radio" name="open" value="false" /> </div> <div> <label>Simple description:</label> <textarea name="remark" cols = "40" baris = "4"> </textarea> </div> <verv> <label> Deskripsi terperinci: </label> <textarea name = "xremark" cols = "40" baris = "8"> </textarea> </div> <dv> <a id = "kirim" href = ""> "> </a> <div> <a id =" Submit "href ="#""> "" resref> <a iD = "href =" ">"> <"" resref> <a iD = "href =" "#"> "> <" "href =" ">"> <"" resref = "href =" ">"> <"" resref = "" href = ""> "> <" " </div> </form> </body> </html>Mari kita lihat bagian metode khusus dalam kode JS di atas, yang terutama mendefinisikan verifikasi gambar yang diunggah. Analisis spesifiknya adalah sebagai berikut:
Kemudian Anda dapat menggunakan metode khusus di bagian verifikasi gambar:
1.2 Implementasi latar belakang penambahan produk
@Controller ("ProductAction") @scope ("ProtoType") ProductAction kelas publik memperluas basa <product> {// hilangkan kode lain ... public void save () melempar pengecualian {// memproses gambar yang diunggah, blog berikutnya secara khusus menganalisis unggahan struts2 file model.setDate (tanggal baru ()); // Atur waktu saat ini, karena meja depan tidak melewati bidang waktu, atur sendiri di sini. System.out.println (model); // Informasi Produk Penyimpanan ProductService.Save (Model); }} 2. Perbarui produk
2.1 Perbarui implementasi produk UI
Pertama, lihat kode untuk bagian produk yang diperbarui di query.jsp:
Selanjutnya, mari kita lihat konten pembaruan.jsp:
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transisi // en"> <html> <head> <%@ termasuk file = "/head.jsp. margin: 5px; } </style> <script type = "text/javascript"> $ (function () {// objek datagrid var dg = parent. $ ("iframe [title = 'produk manajemen']"). get (0) .contentWindow. $ ("#dg"); // muat dari jarak jauh $ ("#cc". Untuk mengembalikan data yang diproses ke sisi ini untuk ditampilkan, sehingga latar belakang perlu mengemas data ke dalam format JSON dan mengirimkannya ke URL: 'Category_Query.Action', Valuefield: 'ID', Textfield: 'Type', // Daftar drop-down kami menunjukkan komponen produk: 120 Panele. // untuk mengatur dua lebar pada saat yang sama diedit: false, // kotak drop-down tidak mengizinkan pengeditan // ComboBox mewarisi kombo validatebox, sehingga Anda dapat mengatur verifikasi secara langsung di sini diperlukan: true, hispeMessage: 'Harap pilih kategori'}); dg.datagrid ("getSelections"); // Muat bidang data yang sesuai dari baris yang Anda dapatkan ke dalam formulir untuk menggemakan $ ("#ff"). Form ('Load', {id: baris [0] .id, nama: baris [0] .name, harga: baris [0] .price, komentar: baris [0] .komark, xremark: baris [0] .xrem. Buka: Baris [0] .Open, 'Category.ID': Baris [0] .category.id // easyui tidak mendukung operasi poin, jadi Anda perlu menambahkan tanda kutip}); // Setelah menggemakan data, atur fungsi verifikasi $ ("input [name = name]"). ValidateBox ({wajib: true, ristermessage: 'Harap masukkan nama kategori'}); $ ("input [name = harga]"). NumberBox ({wajib: true, ristermessage: 'Harap masukkan harga produk', min: 0, presisi: 2, // mempertahankan dua tempat desimal awalan: '$'}); $ ("Input [name = 'FileImage.upload']"). ValidateBox ({wajib: true, ristermessage: 'Harap unggah gambar produk', // atur metode khusus validtype: "format ['gif, jpg, jpeg, png']" // brackets adalah parameter}); $ ("TextArea [name = Commond]"). ValidateBox ({wajib: true, ristermessage: 'Harap masukkan deskripsi sederhana dari produk'}); $ ("TextArea [name = xremark]"). ValidateBox ({wajib: true, ristermessage: 'Harap masukkan deskripsi sederhana dari produk'}); $ ("TextArea [name = xremark]"). ValidateBox ({wajib: true, ristermessage: 'Harap masukkan deskripsi sederhana dari produk'}); // Nonaktifkan verifikasi $ ("#ff"). Formulir ("Disablevalidation"); // Register Tombol Acara $ ("#btn"). Klik (function () {// Aktifkan verifikasi $ ("#ff"). Form ("Enablevalidation"); // Jika verifikasi berhasil, kirimkan data if ($ ("#ff"). Form ("FORME (" FORMASI "). 'Product_Update.action', // Saat mengirimkan permintaan ke metode pembaruan ProductAction mengeksekusi keberhasilan: function () {// Jika berhasil, tutup jendela saat ini dan refresh halaman induk. $ ("#win"). }); </script> </head> <body> <form id="ff" method="post" enctype="multipart/form-data"> <div> <label for="name">Product name:</label> <input type="text" name="name" /> </div> <div> <label for="price">Product price:</label> <input type="text" name="price" /> </div> <div> <Label> Perbarui Gambar: </label> <input type = "file" name = "FileImage.upload"/> </Div> <verv> <label for = "Account"> Kategori Produk: </Label> <!-Data Administrator Pemuatan Remote-> <Input ID = "cc" name = "Category.id"/</Div> <inputar untuk = "name" name " COLS = "40" ROWS = "4"> </TextArea> </Div> <ver> <label for = "xremark"> Deskripsi terperinci: </label> <textArea name = "xremark" cols = "40" Baris = "8"> </textArea> </Div> <Div> <label for = "comend" coucend: "LABE"> </TextArea> </Div> <Div> <label for = "comend" coucend "LABEK: LABEK: LABET: LABET: LABET: LABET: LABET: LABET: LABET: LABET; value = "true" /> no: <input type = "Radio" name = "comend" value = "false" /> < /div> <ver> <label for = "open"> produk efektif: < /label> terdaftar: <input type = "Radio" name = "buka" value = "true" /> dihapus: <input type = "Radio" name = "name =" foile "fales" false "fales" fales "false" fales "false" false " href = "#" data-options = "iconcls: 'ikon-edit'"> update </a> <input type = "hidden" name = "id"/> </div> `</form> </body> </html> Bagian pembaruan pada dasarnya sama dengan pembaruan kategori produk. Saya tidak akan mengulanginya lagi. Berikut ini adalah implementasi bagian pembaruan latar belakang:
2.2 Implementasi Latar Belakang Produk yang Diperbarui
@Controller ("ProductAction") @Scope ("ProtoType") ProductAction kelas publik memperluas basa <product> {// hilangkan kode lain ... pembaruan public void () melempar pengecualian {// memproses gambar yang diunggah, dan blog berikutnya secara khusus menganalisis unggahan model struts2 model.setDate (tanggal baru ());); // Atur waktu saat ini, karena meja depan tidak melewati bidang waktu, atur sendiri di sini. System.out.println (model); // Perbarui Produk ProdukService.update (model); }} Dibandingkan dengan memperbarui kategori produk, hanya ada satu lagi operasi unggahan gambar. Kita perlu memproses gambar yang diunggah di latar belakang. Kami akan menganalisis fungsi pengunggahan file dari Struts2 secara detail dalam artikel berikutnya.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.