Pengantar Thymeleaf
Sederhananya, Thymeleaf adalah mesin templat yang mirip dengan kecepatan dan freemarker, yang sepenuhnya dapat menggantikan JSP. Dibandingkan dengan mesin template lainnya, ia memiliki tiga fitur yang sangat menarik berikut:
1.Tymeleaf dapat dijalankan di lingkungan dengan atau tanpa jaringan, yaitu, memungkinkan seniman untuk melihat efek statis halaman di browser, dan juga memungkinkan programmer untuk melihat efek halaman dinamis dengan data di server. Ini karena mendukung prototipe HTML, dan kemudian menambahkan atribut tambahan ke tag HTML untuk mencapai metode tampilan templat + data. Ketika browser menginterpretasikan HTML, atribut tag yang tidak ditentukan akan diabaikan, sehingga templat thymeleaf dapat dijalankan secara statis; Ketika data dikembalikan ke halaman, tag Thymeleaf akan secara dinamis menggantikan konten statis, membuat tampilan halaman secara dinamis.
2. Thymeleaf berada di luar kotak. Ini menyediakan dua dialek: standar dan standar pegas. Anda dapat secara langsung menerapkan templat untuk mencapai efek ekspresi JSTL dan OGNL, menghindari kesulitan menempatkan templat, JSTL, dan mengubah tag setiap hari. Pada saat yang sama, pengembang juga dapat memperluas dan membuat dialek khusus.
3.Tymeleaf menyediakan dialek standar musim semi dan modul opsional yang terintegrasi dengan SpringMVC dengan sempurna, yang dapat dengan cepat mengimplementasikan pengikatan formulir, editor atribut, internasionalisasi, dan fungsi lainnya.
Unggah metode formulir:
// html: <bentuk enctype = "multipart/form-data" method = "post" action = "/jual/imageupload"> <velp> <tombol type = "tombol" data-dismiss = "modal" aria-hidden = "true"> </tombol </h4 id = "mymodallabel"> informasi label </h4> </h4> </h4> </div </div </div. id="edit_name" value="${goods.name}" name="name"/> </div><div> <label>code:</label> <input id="edit_sn" name="sn" value="${goods.sn}" /> </div><div> <label>weight:</label> <input id="edit_weight" name="weight" value = "$ {goods.weight}"/> </div> <div> <label> marketprice: </label> <input id = "edit_marketprice" name = "marketprice" value = "$ {goods.marketprice}"/> <div> <vel> <label> ShopPrice: </label> <input iD = "ed" edit " value = "$ {goods.shopprice}"/> </div> <div> <label> unit: </label> <input id = "edit_unit" name = "unit" value = "$ {goods.unit}"/> </div> <ver> <label> Nomor "</label> <input id =" edit_number "name =" NOMOR = "NOMOR =" NOMOR = "{EDITS." NOUMES = "NOUMER" NOUMES = "NOUMER" NOUMES = "NOUMES =" NOUMER "NOUMES =" NOMOR/NOMEMERS. </div> <div> <!-<bentuk enctype = "multipart/form-data" metode = "post" action = "/jual/imageupload"> <input ype = "tersembunyi" id = "edit_goods_sn" name = "sn" value = "$" {goods.sn} "//>-> name" name = "value =" $ "{goods.sn}"//-> gambar <input = "name =" $ "$" {goods.sn} "//-> Image <Input" name = "$" type = "Kirim" value = "Unggah"/> <!-</form>-> </div> </div> <div> <tombol type = "tombol" data-dismiss = "modal"> tutup </button> <input type = "kirim" id = "edit_save" value = "kirim"> Kirimkan perubahan </input> </div ", = = =" value = "Kirim"> Kirimkan </input> </Div "nilai =/value =" RequestMethod.post) String publik SaveGoodSpage (@RequestParam (value = "id", wajib = false) ID string,@requestParam (value = "name", wajib = false) nama string,@requestParam (value = "sn", wajib = false) string sn, @requestparam (value = "angka", diperlukan = false) nomor string,@requatpar) (value),@request,@request =@requestparam (value = "nomor", nomor falsparam (value =@false),@false),@false),@false),@requestparam (value = "value =" Nilai ", NOVERPARAM,@RECANTAES = NOVEDPARAM (Nilai", = "marketPrice",required=false) String marketPrice,@RequestParam(value = "shopPrice",required=false) String shopPrice, @RequestParam(value = "unit",required=false) String unit, @RequestParam(value = "detail",required=false) String detail,@RequestParam (value="file")MultipartFile file ) { if (!file.isEmpty()) { try { BufferedOutputStream out = baru bufferedOutputStream (FileOutputStream baru (file baru ("src/main/sumber daya/statis/gambar/produk/" + sn + ".jpg"))); // simpan gambar ke direktori out.write (file.getbytes ()); out.flush (); out.close (); String filename = "/// gambar /// produk ///" + sn + ".jpg"; /*Ser.settupian(filename); //userrepository.save(user);//add pengguna*/} catch (filenotfoundException e) {e.printstacktrace (); return "Unggah kesalahan," + e.getMessage (); } catch (ioException e) {e.printstacktrace (); mengembalikan "unggah kesalahan" + e.getMessage (); }} //... Operasi lain}Suplemen: Apakah ada perbedaan antara ekspresi variabel dan ekspresi tanda bintang?
Tidak ada perbedaan antara keduanya tanpa mempertimbangkan konteksnya; Evaluasi sintaks asterisk diekspresikan pada objek yang dipilih, bukan seluruh konteks apa objek yang dipilih? Ini adalah nilai tag induk, sebagai berikut:
<Div TH: Object = "$ {session.user}"> <p> Nama: <span th: text = "*{firstName}"> Sebastian </span>. </p> <p> Nama keluarga: <span th: text = "*{lastName}"> span </span>. th: text = "*{nationality}"> Saturn </span>. </p> </div>Ini persis setara dengan:
<div th:object="${session.user}"> <p>Name: <span th:text="${session.user.firstName}">Sebastian</span>.</p> <p>Surname: <span th:text="${session.user.lastName}">Pepper</span>.</p> <p>Nationality: <span Th: Text = "$ {session.user.nationality}"> Saturn </span>. </p> </div>Tentu saja, tanda dolar dan sintaks asterisk dapat dicampur:
<Div TH: Object = "$ {session.user}"> <p> Nama: <span th: text = "*{firstName}"> Sebastian </span>. </p> <p> Nama keluarga: <span th: text = "$ {session.user.lastname}"> Pepper </span> </p>. th: text = "*{nationality}"> Saturn </span>. </p> </div>Meringkaskan
Di atas adalah langkah operasi untuk mengunggah gambar thymeleaf boot pegas kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!