springMVC注解@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}
    */


}

猜你喜欢

转载自blog.csdn.net/jj546630576/article/details/81115368
今日推荐