Variabel Jalur Pegas dengan Thymeleaf

1. Perkenalan

Dalam tutorial singkat ini, kita akan mempelajari cara menggunakan Thymeleaf untuk membuat URL menggunakan variabel jalur Spring.

Kami menggunakan variabel jalur saat kami ingin meneruskan nilai sebagai bagian dari URL. Di pengontrol Spring, kami mengakses nilai ini menggunakan anotasi @PathVariable .

2. Menggunakan Variabel Path

Pertama, mari kita siapkan contoh kita dengan membuat kelas Item sederhana :

public class Item { private int id; private String name; // Constructor and standard getters and setters }

Sekarang, mari buat pengontrol kita:

@Controller public class PathVariablesController { @GetMapping("/pathvars") public String start(Model model) { List items = new ArrayList(); items.add(new Item(1, "First Item")); items.add(new Item(2, "Second Item")); model.addAttribute("items", items); return "pathvariables/index"; } @GetMapping("/pathvars/single/{id}") public String singlePathVariable(@PathVariable("id") int id, Model model) { if (id == 1) { model.addAttribute("item", new Item(1, "First Item")); } else { model.addAttribute("item", new Item(2, "Second Item")); } return "pathvariables/view"; } }

Di template index.html kita , mari mengulang item kita dan membuat link yang memanggil metode singlePathVariable :

Kode yang baru kita buat membuat URL seperti ini:

//localhost:8080/pathvars/single/1

Ini adalah sintaks Thymeleaf standar untuk menggunakan ekspresi dalam URL.

Kami juga dapat menggunakan penggabungan untuk mencapai hasil yang sama:

3. Menggunakan Variabel Jalur Ganda

Sekarang kita telah membahas dasar-dasar membuat URL variabel jalur di Thymeleaf, mari kita bahas dengan cepat menggunakan beberapa.

Pertama, kita akan membuat kelas Detail dan memodifikasi kelas Item kita agar memiliki daftarnya:

public class Detail { private int id; private String description; // constructor and standard getters and setters }

Selanjutnya, mari tambahkan daftar Detail ke Item :

private List details;

Sekarang, mari perbarui pengontrol kita untuk menambahkan metode menggunakan beberapa anotasi @PathVariable :

@GetMapping("/pathvars/item/{itemId}/detail/{dtlId}") public String multiplePathVariable(@PathVariable("itemId") int itemId, @PathVariable("dtlId") int dtlId, Model model) { for (Item item : items) { if (item.getId() == itemId) { model.addAttribute("item", item); for (Detail detail : item.getDetails()) { if (detail.getId() == dtlId) { model.addAttribute("detail", detail); } } } } return "pathvariables/view"; }

Terakhir, mari kita ubah template index.html kita untuk membuat URL untuk setiap catatan detail:


    

4. Kesimpulan

Dalam tutorial singkat ini, kita mempelajari cara menggunakan Thymeleaf untuk membuat URL dengan variabel jalur. Kami mulai dengan membuat URL sederhana hanya dengan satu. Kemudian, kami memperluas contoh kami untuk menggunakan beberapa variabel jalur.

Kode contoh tersedia di GitHub.