美文网首页
SpringMVC处理模型数据——ModelAndView

SpringMVC处理模型数据——ModelAndView

作者: 花无缺_0159 | 来源:发表于2019-03-04 10:41 被阅读0次

    如果跳转时需要带数据:视图、模型,那么可以使用ModelAndView,自动将对象放入request域中。

    一个例子:
    实体类Student.java:

    package com.test.entity;
    
    public class Student {
        private int id;
        private String name;
        private int age;
        
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        private Address address ;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Address getAddress() {
            return address;
        }
        public void setAddress(Address address) {
            this.address = address;
        }
        
    }   
    

    Address.java:

    package com.test.entity;
    
    public class Address {
        private String homeAddress ; 
        private String schoolAddress ;
        public String getHomeAddress() {
            return homeAddress;
        }
        public void setHomeAddress(String homeAddress) {
            this.homeAddress = homeAddress;
        }
        public String getSchoolAddress() {
            return schoolAddress;
        }
        public void setSchoolAddress(String schoolAddress) {
            this.schoolAddress = schoolAddress;
        }
        
    }
    

    首页index.jsp(发送请求):

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <br/>
            <a href="handler/testModelAndView">testModelAndView</a>
        <br/>
    </body>
    </html>
    

    跳转后的页面success.jsp:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
            ${requestScope.student.id } -${requestScope.student.name } <br/>
    </body>
    </html>
    

    处理器:

    package com.test.handler;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    import com.test.entity.Student;
    
    
    @Controller
    @RequestMapping(value="handler")
    public class SpringMVCHandler {
    @RequestMapping(value="testModelAndView")
            public ModelAndView testModelAndView() {
                ModelAndView mv = new ModelAndView("success");//view:  views/success.jsp 
                
                Student student = new Student() ;
                student.setId(1);
                student.setName("hhh");
                
                mv.addObject("student", student);//相当于request.setAttribute("student", student);
                return mv;//数据和页面都返回了
            }
    }       
    

    至此,ModelAndView的用法演示结束。

    补充:
    1.ModelMap 、Map、Model 的用法也非常简单,
    示例:

    public String testModel(ModellMap | Model |Map<String,Object>   m) {
    ...
    m.put(x,".."); 就会将x对象 放入request域中
    ...
    }
    

    2.使用@SessionAttributes(..)在类前标上注解可以将数据放入session中。

    @SessionAttributes(value="student")  //在request中存放student对象,同时将该对象放入session域中
    
    @SessionAttributes(types= {Student.class,Address.class})  //在request中存放Student类型、Address类型的对象,同时将该类型对象放入session域中
    

    3.@ModelAttribute的使用:
    在任何一次请求前,都会先执行@ModelAttribute修饰的方法,该方法中的map.put()可以将对象放入即将查询的参数中,但必须满足约定:map.put(k,v) 中的k必须是即将查询的方法参数的首字母小写。

    相关文章

      网友评论

          本文标题:SpringMVC处理模型数据——ModelAndView

          本文链接:https://www.haomeiwen.com/subject/fzlbyqtx.html