spring mvc controller接收请求值及controller之间跳转及传值
来源:互联网 发布:2016网络流行词语大全 编辑:程序博客网 时间:2024/05/16 15:10
Spring接收请求参数:
1,使用HttpServletRequest获取
- @RequestMapping("/login.do")
- public String login(HttpServletRequest request){
- String name = request.getParameter("name")
- String pass = request.getParameter("pass")
- }
2,Spring会自动将表单参数注入到方法参数,和表单的name属性保持一致。和Struts2一样
- @RequestMapping("/login")
- public String login(HttpServletRequest request,
- String name,
- @RequestParam("pass")String password) // 表单属性是pass,用变量password接收
- {
- log.info(name);
- log.info(password)
- }
3,自动注入Bean属性
- <form action="login">
- 用户名:<input name="name"/>
- 密码:<input name="pass"/>
- <input type="submit" value="登陆">
- </form>
- //封装的User类
- public class User{
- private String name;
- private String pass;
- }
- @RequestMapping("/login")
- public String login(User user)
- {
- log.info(user.getName());
- log.info(user.getPass());
- }
向页面传值:
当Controller组件处理后,向jsp页面传值,
1,使用HttpServletRequest 和 Session 然后setAttribute(),就和Servlet中一样
2,使用ModelAndView对象
3,使用ModelMap对象
4,使用@ModelAttribute注解
Model数据会利用HttpServletRequest的Attribute传值到success.jsp中
- @RequestMapping("/login")
- public ModelAndView login(String name,String pass){
- User user = userService.login(name,pwd);
- Map<String,Object> data = new HashMap<String,Object>();
- data.put("user",user);
- return new ModelAndView("success",data);
- }
使用ModelMap参数对象示例:
ModelMap数据会利用HttpServletRequest的Attribute传值到success.jsp中
- @RequestMapping("/login.do")
- public String login(String name,String pass ,ModelMap model){
- User user = userService.login(name,pwd);
- model.addAttribute("user",user);
- model.put("name",name);
- return "success";
- }
使用@ModelAttribute示例
在Controller方法的参数部分或Bean属性方法上使用
@ModelAttribute数据会利用HttpServletRequest的Attribute传值到success.jsp中
ModelMap对象的 addAttribute,put两个方法有什么区别就是 addAttribute是不允许添加空值的key,put是允许的
- @RequestMapping("/login.do")
- public String login(@ModelAttribute("user") User user){
- //TODO
- return "success";
- }
- @ModelAttribute("name")
- public String getName(){
- return name;
- }
Session存储:
可以利用HttpServletReequest的getSession()方法
- @RequestMapping("/login.do")
- public String login(String name,String pwd
- ModelMap model,HttpServletRequest request){
- User user = serService.login(name,pwd);
- HttpSession session = request.getSession();
- session.setAttribute("user",user);
- model.addAttribute("user",user);
- return "success";
- }
Spring MVC contorller跳转到另一个controller并传值
示例均从createOrderForOld跳转到createOrder
1: forward 请求转发
@RequestMapping(value ="/createOrderForOld")
public String createOrder(HttpServletRequest request,ModelMapmodel) {
return"forward:/createOrder";
}
@RequestMapping(value ="/createOrder")
public String createOrder(String oderId,String orderName,ModelMap model) {
return"index;
}
forward跳转,是请求转发,参数自动跳转,所以当http://localhost:8080/my-app/createOrderForOld?orderId=123 该链接请求createOrderForOld接口后 请求转发到createOrder接口时,参数自动带过来了,createOrder中oderId自动赋值为“123”,参数名称需一致,否则无法传参赋值。
2: redirect 重定向
@RequestMapping(value ="/createOrderForOld")
public String createOrder(HttpServletRequest request,ModelMap model) {
model.put("orderName","newOld");
return"redirect:/createOrder?orderId=123";
}
@RequestMapping(value ="/createOrder")
public String createOrder(String oderId,String orderName,ModelMap model) {
return"index";
}
当请求http://localhost:8080/my-app/createOrderForOld 链接请求createOrderForOld接口后 请求重定向到createOrder接口时,通过model.put方法 ,createOrder中oderName自动赋值为“newOld”,通过参数拼接orderId自动赋值为“123”。
故redirect跳转到另一个controller是通过model还是拼接url均可。参数名称需一致,否则无法传参赋值。
RedirectAttributes和ModelMap或Model不推荐一起使用,因为在redirect传值时,同时存在,只有RedirectAttributes中参数值被传递,ModelMap或Model中变量不会传递。
- spring mvc controller接收请求值及controller之间跳转及传值
- spring mvc controller接收请求值及controller之间跳转及传值
- spring mvc controller接收请求值及controller之间跳转及传值
- spring mvc controller接收请求值及controller之间跳转及传值
- spring mvc controller接收请求值及controller之间跳转及传值 标签: spring mvccontroller 传值
- spring MVC controller 跳转
- spring mvc controller跳转
- spring mvc controller和jsp之间传值
- Spring MVC的controller层接收前台传Json参数
- Controller与Controller之间跳转
- spring mvc controller 跳转 到另一个controller 方法
- spring 中controller间跳转传值
- 使用Spring MVC 在controller里如何跳转,传参数
- Spring MVC controller带参数跳转
- spring MVC配置说明及Controller注解实例
- Spring MVC @Controller及相关常用注解的介绍
- MVC只Controller跳转
- controller 之间的跳转
- .NET ORM框架
- Enum
- eclipse中maven插件详解
- UE去掉备份文件
- JNI java c 调用
- spring mvc controller接收请求值及controller之间跳转及传值
- SpringMVC注入参数时为什么必须要在注解中写变量名
- jquery-1.10.2.min.map 404 (Not Found)问题及解决
- spring Mvc 教程框架实例以及系统演示下载
- 机器学习/统计学方法/算法 —— 总体架构目录
- top、postop、scrolltop、offsetTop、scrollHeight、offsetHeight、clientHeight
- js中金融数字格式 js中字符串反转
- VMware Workstation 共享磁盘和Linux的UDEV使用
- Divide Two Integers