springMVC注解@ModelAttribute多种用法

本文详细介绍了 Spring MVC 中 ModelAttribute 注解的多种使用方式,包括如何将数据绑定到模型、不同返回类型的方法注解及参数注解的应用场景。
package com.springs.mvc;

import com.spring.entity.User;
import com.sun.org.apache.xpath.internal.operations.Mod;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * ModelAttribute 用法详解
 */
@Controller
@RequestMapping(value = "/cms")
public class CmsController {

    /* ModelAttribute 1: 注释返回具体类的方法
        @ModelAttribute(value = "loginname") //使用value来指定model属性名称,model值就是方法返回值
        public String userModel1(@RequestParam("loginname") String loginname){
            return loginname;
        }
        @RequestMapping(value = "/login1")
        public String login1(){
            return "result1";
        }
        //result1.jsp :  ${requestScope.loginname}
    */

    /*  ModelAttribute 2: 注释void返回值方法
        @ModelAttribute
        public void userModel2(@RequestParam("loginname") String loginname, Model model){
            model.addAttribute("loginname",loginname);
        }
        @RequestMapping(value = "/login2")
        public String login2(){
            return "result2";
        }
        //result2.jsp :  ${requestScope.loginname}
    */

    /* ModelAttribute 3:注释返回具体方法
        public User findUser(String loginname){
            Map<String ,Object> map = new HashMap<String ,Object>();
            for(int i = 1;i<10;i++){
                String username = String.valueOf(i);
                User user = new User();
                user.setUsername(username);
                map.put(username,user);
            }

            if(map.get(loginname) != null){
                return (User) map.get(loginname);
            }
            return null;
        }
        @ModelAttribute//model属性名没指定,那就是返回值类型的小写也就是user
        public User userModel3(@RequestParam("loginname") String loginname){
            return this.findUser(loginname);
        }
        @RequestMapping(value = "/login3")
        public String login3(){
            return "result3";
        }
        //result3.jsp :  ${requestScope.user.username}
    */


    /*ModelAttribute 4: @RequestMapping与 @ModelAttribute同时指定方法,RequestMapping的value就是页面名称,
        ModelAttribute的value是model的名称,方法返回值就是Model的value

        @RequestMapping(value = "/result1")
        @ModelAttribute(value = "username")
        public String login4(){
            return "value666";
        }
        // /view/cms/result4.jsp :  ${requestScope.username}
    */


      /*ModelAttribute 5 :  @ModelAttribute 注释一个方法的参数

        @ModelAttribute("user") //使用value来指定model属性名称,model值就是方法返回值
        public User userModel5(@RequestParam("loginname") String loginname,@RequestParam("password") String password){
            User user  = new User();
            user.setUsername(loginname);
            user.setPassword(password);
          return user;
        }

        @RequestMapping(value = "/login5")
        public String login5(@ModelAttribute("user") User user){
            user.setMobile("13247629622");
            return "result5";
        }
        //result5.jsp :  ${requestScope.user.loginname}
    */


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值