springmvc中ModelAttribute注解详解

书欣 SpringMVC 发布时间:2023-01-04 09:50:36 阅读数:3339 1
下文笔者讲述ModelAttribute注解的功能简介说明,如下所示

ModelAttribute注解功能简介

ModelAttribute注解功能:
     1.绑定请求参数到指定对象上
	 2.ModelAttribute注解放入方法上时,此方法会在所有Controller之前运行
	   我们常用于权限验证,参数获取等操作时,采用此种模式
例:

绑定请求参数到指定对象

@RequestMapping("/test")
public String test(@ModelAttribute("user") UserModel user) {
    //此时model先获取key等于user的对象,如果获取失败,则会使用反射实例化一个user对象
	//然后从request中将值都set到对象中
}

例: URl/test?name=”maomao”&pwd=”88888”&age=18
此时 test 方法会自动将name,pwd,age映射到user对象中
那么这一切都是ModelAttribute注解的功劳
注意事项:
    URI模板变量也能自动绑定到命令对象中
	并且URI模板变量的优先级最高
例

@RequestMapping("/test2/{name}/{pwd}")
public String test2(@ModelAttribute("user") UserTest user)

请求参数为:/test2/{name}/{pwd}

当请求参数为:/test2/java/16?name=”maomao”&age=22
// user对象中的值为  name:”java” age:22 pwd:16

方法上使用@ModelAttribute

当一个一般方法上加入@ModelAttribute注解时
此方法会在所有controller方法之前运行此方法
   如:一些通用的视图变量,会提前采用此种方法生成
 /**
  * 此处使用此注解,则前端所有方法都可以使用listA 
  * 这个Model
  * @return
  */
 @ModelAttribute("listA")
 public List<String> list(){
     List<String> list = new ArrayList<>();
     list.add("此Controler下的视图都能获取此model");
     list.add("modelValue2");
     list.add("modelValue3");
     return list;
 }
 
 //前端页面
<div>
	<p>${fn:length(listA)}</p>
	<c:forEach items="${listA}" var="list">
		<div>
			<c:out value="${list}" />
		</div>
	</c:forEach>
</div>


 @ModelAttribute("user1")
 public UserTest addUser(UserTest user) {
     return new UserTest("maomao","88888",12);
 }
 
<p> 
姓名:${user1.name}<br />年龄:${user1.age}<br /> 密码:${user1.pwd}<br />
</p>
 
----运行以上代码,页面的绑定值为:
姓名:maomao
年龄:12
密码:88888
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringMVC/202301/5283.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者