在SpringMVC中,jsp和后台互相传值
如题,这个是以前做的笔记,现在搬到博客上......
package com.ruide.action; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import org.springframework.http.HttpRequest; 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.RequestParam; import org.springframework.web.servlet.ModelAndView; import com.ruide.po.User; //让spring管理类 @Controller public class TestAction { //设置请求路径 @RequestMapping(value="/hello.do") public String say(){ System.out.println("Hello World"); //return "index";//默认请求转发 return "redirect:/index.jsp"; } /* * ----------------------如何从页面里获取值---------------------- * * */ //方法1:使用request接受参数 @RequestMapping("/login.do") public String login(HttpServletRequest request){ String username=request.getParameter("username"); String userpass=request.getParameter("userpass"); System.out.println(username+userpass); return null; } //方法2:直接通过注解在参数中获取值 @RequestMapping("/login.do") public String login(@RequestParam("username") String username, @RequestParam("userpass") String userpass){ System.out.println(username+" "+userpass); return null; } //方法3:通过对象来接受值(该方法需要控件name与对象属性一致) @RequestMapping("/login.do") public String login(User user){ System.out.println(user.getUsername()+" "+user.getUserpass()); return null; } //方法4:通过与控件name同名的变量接受值 @RequestMapping("/login.do") public String login(String username,String userpass){ System.out.println(userpass+" "+username); return "index"; } /* * ----------------------如何把值传递到页面---------------------- * * */ //方法1:通过request把值传递到页面 @RequestMapping("/login.do") public String login(User user,HttpServletRequest request){ request.setAttribute("username",user.getUsername()); request.setAttribute("userpass", user.getUserpass()); return "index"; } //方法2:通过框架自带的modelmap集合传递到页面 @RequestMapping("/login.do") public String login(User user,ModelMap mm){ mm.put("username", user.getUsername()); mm.put("userpass", user.getUserpass()); return "index"; } //方法3:通过框架自带的model and view传递值(常用) @RequestMapping("/login.do") public ModelAndView login(User user){ //把值放入一个键值对中 // Map<String,String> model=new HashMap<String,String>(); // model.put("username", user.getUsername()); // ModelAndView mv=new ModelAndView("index",model); //把对象直接放入键值对中 ModelAndView mv=new ModelAndView(); mv.addObject("user",user); //设置要转发的页面 mv.setViewName("index"); return mv; } //方法4:通过注解传递值(注解中的名字会被赋值) //注意:注解过的方法会在整个action接受到请求时最先执行(不推荐使用) @ModelAttribute("name") public String getName(){ return "haha"; } }