Pemboleh ubah Jalur Musim Semi dengan Thymeleaf

1. Pengenalan

Dalam tutorial ringkas ini, kita akan belajar bagaimana menggunakan Thymeleaf untuk membuat URL menggunakan pemboleh ubah jalur Spring.

Kami menggunakan pemboleh ubah jalan ketika kami ingin menyampaikan nilai sebagai sebahagian daripada URL. Dalam pengawal Spring, kami mengakses nilai-nilai ini menggunakan anotasi @PathVariable .

2. Menggunakan Pemboleh ubah Laluan

Pertama, mari kita contohkan dengan membuat kelas Item mudah :

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

Sekarang, mari buat pengawal kami:

@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"; } }

Dalam templat index.html kami , mari lihat item kami dan buat pautan yang memanggil kaedah singlePathVariable :

Kod yang baru kita buat menjadikan URL seperti ini:

//localhost:8080/pathvars/single/1

Ini adalah sintaks Thymeleaf standard untuk menggunakan ungkapan dalam URL.

Kami juga dapat menggunakan gabungan untuk mencapai hasil yang sama:

3. Menggunakan Pembolehubah Pelbagai Laluan

Setelah kita membahas asas-asas membuat URL pemboleh ubah laluan di Thymeleaf, mari kita tutup dengan cepat menggunakan beberapa.

Pertama, kami akan membuat kelas Detail dan mengubah kelas Item kami untuk mempunyai senarai:

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

Seterusnya, mari tambahkan senarai Perincian ke Item :

private List details;

Sekarang, mari kita kemas kini pengawal kami untuk menambahkan kaedah menggunakan pelbagai 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"; }

Akhirnya, mari ubah suai templat index.html kami untuk membuat URL untuk setiap rekod terperinci:


    

4. Kesimpulan

Dalam tutorial ringkas ini, kami belajar bagaimana menggunakan Thymeleaf untuk membuat URL dengan pemboleh ubah jalur. Kami bermula dengan membuat URL mudah dengan hanya satu. Kemudian, kami memperluas contoh kami untuk menggunakan pelbagai pemboleh ubah laluan.

Kod contoh boleh didapati di GitHub.