spring mvc中的@ModelAttribute注解示例介紹
前言
本文介紹在spring mvc中非常重要的注解@ModelAttribute.這個注解可以用在方法參數上,或是方法聲明上。這個注解的主要作用是綁定request或是form參數到模型對象??梢允褂帽4嬖趓equest或session中的對象來組裝模型對象。注意,被@ModelAttribute注解的方法會在controller方法(@RequestMapping注解的)之前執(zhí)行。因為模型對象要先于controller方法之前創(chuàng)建。
請看下面的例子
- ModelAttributeExampleController.java 是controller類,同時包含@ModelAttribute 方法。
- UserDetails.java是本例中的模型對象
- 最后是spring的配置文件
//ModelAttributeExampleController.java package javabeat.net; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class ModelAttributeExampleController { @Autowired private UserDetails userDetails; @RequestMapping(value="/modelexample") public String getMethod(@ModelAttribute UserDetails userDetails){ System.out.println("User Name : " + userDetails.getUserName()); System.out.println("Email Id : " + userDetails.getEmailId()); return "example"; } //This method is invoked before the above method @ModelAttribute public UserDetails getAccount(@RequestParam String user, @RequestParam String emailId){ System.out.println("User Value from Request Parameter : " + user); userDetails.setUserName(user); userDetails.setEmailId(emailId); return userDetails; } }
//UserDetails.java package javabeat.net; public class UserDetails { private String userName; private String emailId; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getEmailId() { return emailId; } public void setEmailId(String emailId) { this.emailId = emailId; } }
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jms="http://www.springframework.org/schema/jms" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-2.5.xsd"> <context:component-scan base-package="org.spring.examples" /> <bean id="userDetails" class="org.spring.examples.UserDetails"/> </beans>
- 上面的例子,getAccount方法使用@ModelAttribute注解。這意味著方法會在controller的方法之前執(zhí)行。這個方法會使用request的參數設置模型對象。這是一種在方法中設置值的途徑。
- 另一種@ModelAttribute注解的使用方法,是用在方法的參數上。在調用方法的時候,模型的值會被注入。這在實際使用時非常簡單。將表單屬性映射到模型對象時,這個注解非常有用。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
SpringBoot使用@RestController處理GET和POST請求的代碼詳解
在Spring?MVC中,@RestController注解的控制器類可以處理多種HTTP請求方法,包括GET和POST,所以本文就給大家詳細介紹了SpringBoot使用@RestController處理GET和POST請求的示例代碼,需要的朋友可以參考下2024-07-07如何使用Idea中的 Deployment 實現打包自動部署
這篇文章主要介紹了使用Idea中的 Deployment 實現打包自動部署,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08