SpringMVC后台传递数据到页面(Model来传参和域对象传参)

SpringMVC后台传递参数到页面

控制器中的参数传递到页面,常见的有两种方式:

方式一: 通过Model来传参(model对象来传递)

   @Controller
    @RequestMapping("mfc")
    public class FirstController {      
        @RequestMapping(value="fr")
        public String secondRequest(Model model){
            String key = "hello world";
            model.addAttribute("key", key);
            //此时没有定义变量的名字,默认就用这个参数的类型的名字做为变量的名字,不过首字母大写变小写
            model.addAttribute("xxxxxxx");
            return "show";
        }
    }
model中有两个方法可以使用:model.addAttribute(object)和model.addAttribute("名字",object)。

传递后,在页面上通过EL表达式来获取,show页面代码如下:

    <%@ 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>
    <h2>这里是show.jsp页面</h2>
    通过model传递到页面的参数key:${key }<br/>
    获取model单个参数存储的变量:${string }<br/>
    </body>
    </html>

方式二: 通过内置对象来传递

了model传递参数以外,我们还可以通过request,session来传递,代码如下:

   @Controller
    @RequestMapping("mfc")
    public class FirstController {
    
        @RequestMapping(value="fr")
        public String secondRequest(HttpServletRequest request,HttpSession session){
            request.setAttribute("req", "通过request存放的参数");
            session.setAttribute("ses", "session中的数据");
            return "show";
        }
    }
页面上,还是通过EL表达式来获取,show页面内容如下:

    <%@ 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>
    <h2>这里是show.jsp页面</h2>
    获取request中的参数:${req }<br/>
    获取session中的参数:${ses }
    </body>
    </html>

猜你喜欢

转载自blog.csdn.net/zalan01408980/article/details/82107896