疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Spring MVC连载@ModelAttribute注解


 

 
本文节选自《Spring+MyBatis企业应用实战》
 
@ModelAttribute注解用于将请求参数绑定到对象。
@ModelAttribute注解只支持一个属性value,类型为String,表示绑定的属性名称。
 
实际项目应用场景:
 
JSP代码
<body>
<h3>测试@ModelAttribute注释一个方法的参数 </h3>
<form action="login5" method="post">
     <table>
         <tr>
             <td><label>登录名: </label></td>
             <td><input type="text" id="loginname" name="loginname" ></td>
         </tr>
         <tr>
             <td><label>密码: </label></td>
             <td><input type="password" id="password" name="password"></td>
         </tr>
         <tr>
             <td><input id="submit" type="submit" value="登录"></td>
         </tr>
     </table>
</form>
</body>
复制代码
 
 
控制器代码
@Controller
public class ModelAttribute5Controller{
        
/*
*  @ModelAttribute注释方法参数,会自动入参
*  loginname控件的值会自动入参到User的loginname属性
*  password控件的值会自动入参到User的password属性
*/        
@RequestMapping(value="/login5")
         public String login5(@ModelAttribute User user) {
            user.setUsername("管理员");
            return "result5";
         }
}
复制代码
 
JSP代码:result5.jsp
<body>
访问request作用范围域中的user对象的loginname属性:${requestScope.user.loginname }<br>
访问request作用范围域中的user对象的password属性:${requestScope.user.password }<br>
访问request作用范围域中的user对象的username属性:${requestScope.user.username }<br>
<br>
</body>
复制代码
 
参数User使用了@ModelAttribute注解,前台页面的控件的值会自动入参到@ModelAttribute注解修饰的对象的同名属性当中。
总结:使用@ModelAttribute注解接收参数并保存到对象,这种方式简单灵活,是实际开发当中使用的最多的。