springMVC向页面传值
(1)使用request绑订数据
(2)使用ModelAndView
(3)使用ModelMap
(4)使用session绑订数据
具体见代码:
HelloController.java
package controller;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
/**
* 二级控制器:
* 负责业务逻辑的处理。
* 1.不用实现Controller接口
* 2.在一个Controller类里面,可以添加
* 多个处理方法
* 这些方法的方法名可以自定义,返回值
* 可以是ModelAndView或者是String。
* http://ip:port/springmvc02/hello.do
*/
@Controller("hc")
public class HelloController {
@RequestMapping("/login4.do")
//向页面传值的第一种方式:使用request绑订数据
public String login4(User user,
HttpServletRequest req){
System.out.println("login4方法...");
System.out.println(
user.getUsername()
+ " " + user.getPwd());
req.setAttribute("user",
user);
//默认情况下,使用转发的方式来跳转页面。
return "success";
}
@RequestMapping("/login5.do")
//向页面传值的第二种方式,使用ModelAndView
public ModelAndView login5(User user){
System.out.println("login5方法...");
System.out.println(
user.getUsername()
+ " " + user.getPwd());
//ModelAndView(
//String viewName,Map data)
Map<String,Object> data =
new HashMap<String,Object>();
//相当于执行了request.setAttribute(
//"user",user);
data.put("user", user);
return new ModelAndView(
"success",data);
}
@RequestMapping("/login6.do")
//向页面传值的第三种方式,使用ModelMap
public String login6(User user,
ModelMap data){
System.out.println("login6方法...");
System.out.println(
user.getUsername()
+ " " + user.getPwd());
//相当于request.setAttribute("user",user)
data.addAttribute("user", user);
return "success";
}
@RequestMapping("/login7.do")
//向页面传值的第四种方式:使用session绑订数据
public String login7(User user,
HttpSession session){
System.out.println("login7方法...");
System.out.println(
user.getUsername()
+ " " + user.getPwd());
session.setAttribute("user", user);
return "success";
}
}