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>

要将后台的数据展示到JSP页面,可以使用SpringMVCModelAndView对象。 以下是一个简单的例子: 1. 在Controller中定义方法,查询数据并将其存储在ModelAndView对象中。 ``` @RequestMapping(value = "/showData", method = RequestMethod.GET) public ModelAndView showData() { List<User> userList = userService.getUserList(); ModelAndView modelAndView = new ModelAndView("showData"); modelAndView.addObject("userList", userList); return modelAndView; } ``` 2. 在JSP页面中,使用EL表达式获取存储在ModelAndView对象中的数据并展示。 ``` <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <body> <table> <tr> <th>Id</th> <th>Name</th> <th>Age</th> </tr> <c:forEach var="user" items="${userList}"> <tr> <td>${user.id}</td> <td>${user.name}</td> <td>${user.age}</td> </tr> </c:forEach> </table> </body> </html> ``` 在这个例子中,我们通过Controller中的showData方法获取了一个名为"userList"的List对象,将其存储在ModelAndView对象中,并返回到JSP页面。在JSP页面中,我们使用EL表达式获取"userList"对象,并通过<c:forEach>标签循环展示每个用户的信息。 需要注意的是,我们在JSP页面中使用了JSTL标签库的<c:forEach>标签。如果您还没有在项目中引入JSTL标签库,则需要在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> ``` 同时,需要在JSP页面的头部添加以下标签库声明: ``` <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> ```
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值