码迷,mamicode.com
首页 > 编程语言 > 详细

springmvc值传递

时间:2017-11-11 13:02:55      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:use   bind   lan   string   user   ring   auth   else   null   

1.页面向后台传值

A.HttpServletRequest方式:

 1 package com.rong.controller;
 2 
 3 import javax.annotation.Resource;
 4 import javax.servlet.http.HttpServletRequest;
 5 
 6 import org.springframework.stereotype.Controller;
 7 import org.springframework.web.bind.annotation.RequestMapping;
 8 
 9 import com.rong.entity.User;
10 import com.rong.service.UserService;
11 
12 @Controller
13 @RequestMapping("/user")
14 public class UserController {
15     @Resource
16     UserService userService;// 用接口,动态代理
17 
18     @RequestMapping("/login.do")
19     public String login() {
20         return "login";
21     }
22 
23     /**
24      * 登录判断逻辑 页面传值方式一:借助servlet原生对象传值
25      * 在方法中只需要将原生的对象设置成参数,springMVC会自动的将对象注入到参数中传递过来
26      */
27     @RequestMapping("/one.do")
28     public String one(HttpServletRequest request) {
29         String name = request.getParameter("name");
30         String password = request.getParameter("password");
31         User user = userService.login(new User(name, password));
32         if (user != null) {
33             return "main";
34         } else {
35             return "login";
36         }
37     }
38 
39 }

 

B.通过页面的name传值到后台,spring自动注入(页面的name必须与后台的参数名一致)

 1 /**
 2      * 页面传值方式二:借助表单的name属性名来传值 spring会自动根据参数的名字,从request中通过getParameter取值
 3      * 需要表单的name值与方法中的参数名一致
 4      * 
 5      * @author 容杰龙
 6      */
 7     @RequestMapping("/two.do")
 8     public String two(String name,String pwd){
 9         User user = userService.login(new User(name, pwd));
10         if (user != null) {
11             return "main";
12         } else {
13             return "login";
14         }
15     }

 

C.通过@RequestParam注解传值

 1     /**
 2      * 页面传值方式三:
 3      * 通过RequestParam注解来解决表单的name与请求处理方法参数名不一致问题
 4      * @RequestParam("name")String userName
 5      * 告诉spring从request的name的参数名上获取值绑定到userName参数上
 6      * 
 7      */
 8     @RequestMapping("/three.do")
 9     public String three(@RequestParam("name")String userName,@RequestParam("pwd")String password){
10         User user = userService.login(new User(userName, password));
11         System.out.println(user);
12         if (user != null) {
13             return "main";
14         } else {
15             return "login";
16         }
17     }

D.通过spring的自动封装机制实现封装成bean对象

 1     /**
 2      * 页面传值方式四:通过spring提供的bean封装功能
 3      * 1.需要页面的name值与bean的属性名一致
 4      *   spring会自动调用setXXX属性的方法来赋值
 5      * 2.在方法中的参数指定为该bean的类型参数  参数名随意
 6      * 3.有些情况下bean的某些属性没有值,则spring自动赋值为null
 7      * 
 8      */
 9 
10     @RequestMapping("/four.do")
11     public String four(User user){
12         User MyUser = userService.login(user);
13         System.out.println(MyUser);
14         if (MyUser != null) {
15             return "main";
16         } else {
17             return "login";
18         }
19     }

2.后台向页面传值

A.利用原生的request或session等对象传值

B.通过ModelAndView传值

 1     /**
 2      * 后台传值到页面方式二:通过ModelAndView传值
 3      * ModelAndView(viewName, model) :viewName 视图字符串   model是模型数据,类型是Map类型
 4      * spring会从modelAndView对象中获取map对象,然后将map.key当成是request的attribut的name,map.value当
 5      * 成request的attribut的值
 6      * request.setAttribute(model的条目.getKey(),model的条目.getValue())
 7      * 
 8      */
 9 
10     @RequestMapping("/five.do")
11     public ModelAndView five(User user) {
12         System.out.println(user);
13         User login = userService.login(user);
14         Map<String, Object> map = new HashMap<>();
15         ModelAndView modelAndView = null;
16         if (login != null) {
17             map.put("user", login);
18             modelAndView = new ModelAndView("main", map);
19         } else {
20             map.put("msg", "login fail!");
21             modelAndView = new ModelAndView("login", map);
22         }
23         return modelAndView;
24     }

C.通过ModelMap传值

 1     /**
 2      * 
 3      * @param user
 4      * @param modelMap
 5      *            该对象由spring注入,只需要给其绑定数据,spring会根据modelMap对象的key和value绑定
 6      *            request的attribute
 7      * 
 8      */
 9     @RequestMapping("/six.do")
10     public String six(User user, ModelMap modelMap) {
11         System.out.println(user);
12         User login = userService.login(user);
13         if (login != null) {
14             modelMap.put("user", login);
15             return "main";
16         } else {
17             modelMap.put("msg", "login fail!");
18             return "login";
19         }
20     }

 

springmvc值传递

标签:use   bind   lan   string   user   ring   auth   else   null   

原文地址:http://www.cnblogs.com/57rongjielong/p/7816427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!