Parameter Permintaan Musim Semi dengan Timeleaf

1. Perkenalan

Dalam artikel kami Pengantar Menggunakan Timeleaf di Musim Semi, kami melihat cara mengikat input pengguna ke objek.

Kami menggunakan th: object dan th: field di template Thymeleaf dan @ModelAttribute di controller untuk mengikat data ke objek Java. Di artikel ini, kita akan melihat cara menggunakan anotasi Musim Semi @RequestParam yang dikombinasikan dengan Thymeleaf.

2. Parameter dalam Formulir

Pertama-tama, buat pengontrol sederhana yang menerima empat parameter permintaan opsional:

@Controller public class MainController { @RequestMapping("/") public String index( @RequestParam(value = "participant", required = false) String participant, @RequestParam(value = "country", required = false) String country, @RequestParam(value = "action", required = false) String action, @RequestParam(value = "id", required = false) Integer id, Model model ) { model.addAttribute("id", id); List userIds = asList(1,2,3,4); model.addAttribute("userIds", userIds); return "index"; } }

Nama template Thymeleaf kami adalah index.html . Dalam tiga bagian berikut, kita akan menggunakan elemen formulir HTML yang berbeda bagi pengguna untuk meneruskan data ke pengontrol.

2.1. Elemen Masukan

Pertama, mari buat formulir sederhana dengan kolom input teks dan tombol untuk mengirimkan formulir:

Atribut th: name = ”participant” mengikat nilai bidang input ke parameter peserta pengontrol. Agar ini berfungsi, kita perlu memberi anotasi parameter dengan @RequestParam (value = “participant”) .

2.2. Pilih Elemen

Begitu juga untuk elemen pilih HTML:

   Germany Netherlands Poland Latvia  

Nilai dari opsi yang dipilih terikat ke negara parameter , dianotasi dengan @RequestParam (value = "country") .

2.3. Elemen Tombol

Elemen lain di mana kita dapat menggunakan th: name adalah elemen tombol:

 check-in check-out 

Bergantung pada apakah tombol pertama atau kedua ditekan untuk mengirimkan formulir, nilai tindakan parameter akan berupa check-in atau check-out .

3. Parameter di Hyperlink

Cara lain untuk meneruskan parameter permintaan ke pengontrol adalah melalui hyperlink:

Dan kita bisa menambahkan parameter dalam tanda kurung:

Thymeleaf mengevaluasi hal di atas untuk:

Menggunakan ekspresi Thymeleaf untuk menghasilkan hyperlink sangat berguna jika kita ingin menetapkan nilai parameter berdasarkan variabel. Misalnya, mari buat hyperlink untuk setiap ID pengguna:

  User [[${userId}]]

Kita bisa meneruskan daftar ID pengguna sebagai properti ke template:

List userIds = asList(1,2,3); model.addAttribute("userIds", userIds);

Dan HTML yang dihasilkan adalah:

 User 1

User 2

User 3

Id parameter di hyperlink terikat ke id parameter , dianotasi dengan @RequestParam (value = “id”) .

4. Ringkasan

Dalam artikel singkat ini, kami melihat cara menggunakan parameter permintaan Spring yang dikombinasikan dengan Thymeleaf.

Pertama, kami membuat pengontrol sederhana yang menerima parameter permintaan. Kedua, kami melihat bagaimana menggunakan Thymeleaf untuk menghasilkan halaman HTML yang dapat memanggil pengontrol kami.

Kode sumber lengkap untuk semua contoh di artikel ini dapat ditemukan di GitHub.