Model/ModelMap 和 ModelAndView 的区别使用

Model/ModelMap 和 ModelAndView 的区别使用

Model/ModelMap

controller:

package springmvc.controller;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import springmvc.model.User;

@Controller
public class HelloController {

	private static final Log logger = LogFactory.getLog(HelloController.class);
	
	@ModelAttribute
	public void userModel(String name, String password, Model model)
	{
		logger.info("userModel");
		//创建userModel
		User user = new User();
		user.setName(name);
		user.setPassword(password);
		//user对象存在model当中
		model.addAttribute("user", user);
	}
	
	
	@RequestMapping(value="/hello", method=RequestMethod.GET)
    public String hello()
    {      
        return "index";
    }
	
	
	@RequestMapping(value="/login", method=RequestMethod.POST)
	public String post(Model model)
	{
		//从model中取出之前存的user对象
		User user = (User) model.asMap().get("user");
		System.out.println(user);
		//设置user对象
		user.setName("测试");
		model.addAttribute("sucess", "ok");
		System.out.println(user);
		return "post";
	}
	
	
	
	
	
	
	
	
}

  

jsp:

index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<!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>hello-index</title>
</head>
<body>


<form:form method="post" action="/gu2/login" modelAttribute="user">
	姓名:<form:input path="name"  id="name"/>
	<br>
	密码:<form:password path="password" id="password"/>
	<br>
	<input type="submit" vlaue="提交">
</form:form>



</body>
</html>

  

post.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"   pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page isELIgnored="false"%>
<!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>post</title>
</head>
<body>

<h3>post</h3>
name: ${user.name}<br>
passwod: ${user.password}<br>
${sucess}

</body>
</html>

  

ModelAndView

controller:

package springmvc.controller;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import springmvc.model.User;

@Controller
public class Hello2Controller {

	
	private static final Log logger = LogFactory.getLog(Hello2Controller.class);
	
	@ModelAttribute
	public void userModel(String name, String password, ModelAndView mv)
	{
		logger.info("usermodel");
		User user = new User();
		user.setName(name);
		user.setPassword(password);
		
		mv.addObject("user", user);
	}
	
	@RequestMapping(value="/h2", method=RequestMethod.GET)
	public ModelAndView  index()
	{
		//return new ModelAndView("hello2_index", "commond", new User());
		 return new ModelAndView("h2_index", "command", new User());
	}
	
	@RequestMapping(value="/lh2",method=RequestMethod.POST)
	public ModelAndView post( ModelAndView mv)
	{
		logger.info("hello2_index_h2");
		//从modelAndView中的model里获取user
		User user = (User) mv.getModel().get("user");
		System.out.println(user);
		
		if( user !=null)
			user.setName("ccccc");
		
		mv.setViewName("h2_post");
		return mv;
	}
	
}

  

jsp

index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"  pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<!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>h2-index</title>
</head>
<body>


<form:form method="post" action="/gu2/lh2" command="user">
	name: <form:input path="name" id="name"/>
	password: <form:input path="password" id="password"/>
	<input type="submit" value="提交"/>
</form:form>

</body>
</html>

  

h2_post.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"   pageEncoding="utf-8"%>
<%@ page isELIgnored="false" %>
<!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>h2-post</title>
</head>
<body>

<h3>post</h3>
name: ${user.name}<br>
password:  ${user.password}<br>


</body>
</html>

  

猜你喜欢

转载自www.cnblogs.com/achengmu/p/9230296.html
今日推荐