springmvc中的数据传递
import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class Params { public Params() { System.out.println("costructor...."); } /* * 方式1:通过注入httpServletRequest进行参数设置,并跟随返回的视图传递到页面 */ @RequestMapping("/ppp1") public String param(HttpServletRequest req) { req.setAttribute("msg", "you"); return "/WEB-INF/hello.jsp"; } /* * 方式2:通过原始的modelAndView设置模型数据和视图名称,,并返回 */ @RequestMapping("/ppp2") public ModelAndView param2() { ModelAndView mav = new ModelAndView(); User user = new User(); user.setName("俩后"); mav.addObject("user", user); mav.setViewName("/WEB-INF/hello.jsp"); mav.addObject("msg", "ck"); return mav; } /* * 方式3:通过向方法注入形参Model类的对象,该对象由spring自动功能创建添加,model对象添加模型数据 * 而返回的字符串负责指向要跳转的视图名称 */ @RequestMapping("/ppp3") public String param3(Model model) { User user = new User(); user.setName("俩后的"); model.addAttribute("user", user); model.addAttribute("msg", "ck"); return "/WEB-INF/hello.jsp"; } /* * 方式4:直接将返回值作为模型对象返回 * 此时,视图名就是该方法的访问地址,即/ppp4, */ @RequestMapping("/ppp4") public User param4() { User user = new User(); user.setName("俩后的"); return user; } }
上面四种方式都是将数据放在request作用域中的,通过${requestScope.xxx}可以取出数据