Toggle Theme Editor
Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Charcoal

Mục đích và cách sử dụng @ModelAttribute trong Spring MVC

Discussion in 'Spring Framework' started by macarong35, 15/11/17.

  1. macarong35

    macarong35 Administrator Staff Member

    Bài này mình sẽ nói nhanh qua mục đích và cách sử dụng của @ModelAttribute trong Spring MVC, cái này thì mình nghĩ bạn nào làm Spring rồi cũng biết, nên bài này dành cho các bạn đang bắt đầu sử dụng Spring nhé. :)

    @ModelAttribute là một thuộc tính của đối tượng Model (M trong MVC), giả sử chúng ta có một form với một đối tượng được gọi là "Location", Sau đó, Spring MVC cung cấp đối tượng này cho một phương thức Controller bằng cách sử dụng annotation @ModelAttribute:
    PHP:
    public String processForm(@ModelAttribute("locationCatalog") List<LocationlocationCatalog){
        
    //TODO:
    }
    Với Spring 3.1 bạn có thể xem ví dụ ở đây: http://static.springsource.org/spri...html/mvc.html#mvc-ann-modelattrib-method-args
    Ngoài ra, để sử dụng attribute này cho toàn bộ Model, không phải khai báo trong từng function trong controller, bạn có thể khai báo như sau:
    PHP:
    @ModelAttribute("locationCatalog")
    public List<
    LocationgetLocationCatalog(){
        return .....;
    }
    Và sử dụng trong thymeleaf:
    PHP:
     <option th:each="item : ${locationCatalog}th:value="${item.locCode}"
                                    
    th:text="${item.locName}"></option>
    Với cách khai báo này, mỗi khi có một thao tác như GET, POST, thì các function này đều được gọi lại, vì vậy, đối với các ModelAttribule mà lấy dữ liệu từ db bạn nên cân nhắc tới performance. Nó có thể làm chậm hệ thống của bạn nếu xử lý không tốt.
     

Chia sẻ trang này

Loading...