Parameter Permintaan Musim Bunga dengan Thymeleaf

1. Pengenalan

Dalam artikel kami Pengenalan Menggunakan Thymeleaf pada Musim Semi, kami melihat bagaimana mengikat input pengguna ke objek.

Kami menggunakan bidang th: objek dan th: dalam templat Thymeleaf dan @ModelAttribute di pengawal untuk mengikat data ke objek Java. Dalam artikel ini, kita akan melihat cara menggunakan anotasi Spring @RequestParam dalam kombinasi dengan Thymeleaf.

2. Parameter dalam Bentuk

Mari kita buat pengawal mudah yang menerima empat parameter permintaan pilihan:

@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 templat Thymeleaf kami adalah index.html . Dalam tiga bahagian berikut, kami akan menggunakan elemen bentuk HTML yang berbeza untuk pengguna menyampaikan data kepada pengawal.

2.1. Elemen Input

Pertama, mari buat borang ringkas dengan medan input teks dan butang untuk menghantar borang:

Atribut th: name = "peserta" mengikat nilai medan input ke peserta parameter pengawal. Agar ini berfungsi, kita perlu memberi penjelasan parameter dengan @RequestParam (nilai = "peserta") .

2.2. Pilih Elemen

Begitu juga untuk elemen pilih HTML:

   Germany Netherlands Poland Latvia  

Nilai pilihan yang dipilih terikat dengan negara parameter , dianotasi dengan @RequestParam (nilai = "negara") .

2.3. Elemen Butang

Elemen lain yang boleh kita gunakan : nama adalah elemen butang:

 check-in check-out 

Bergantung pada apakah butang pertama atau kedua ditekan untuk menyerahkan formulir, nilai tindakan parameter akan menjadi daftar masuk atau daftar keluar .

3. Parameter dalam Hyperlink

Cara lain untuk meneruskan parameter permintaan ke pengawal adalah melalui pautan hiper:

Dan kita boleh menambahkan parameter dalam kurungan:

Thymeleaf menilai perkara di atas untuk:

Menggunakan ungkapan Thymeleaf untuk menghasilkan hyperlink sangat berguna jika kita ingin menetapkan nilai parameter berdasarkan pemboleh ubah. Contohnya, mari buat hyperlink untuk setiap ID pengguna:

  User [[${userId}]]

Kita boleh menyampaikan senarai ID pengguna sebagai harta benda ke templat:

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

HTML yang dihasilkan adalah:

 User 1

User 2

User 3

Id parameter dalam hyperlink terikat pada id parameter , dianotasi dengan @RequestParam (nilai = "id") .

4. Ringkasan

Dalam artikel pendek ini, kami melihat bagaimana menggunakan parameter permintaan Spring dalam kombinasi dengan Thymeleaf.

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

Kod sumber lengkap untuk semua contoh dalam artikel ini boleh didapati di GitHub.