标签:use bind lan string user ring auth else null
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 }
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 }
标签:use bind lan string user ring auth else null
原文地址:http://www.cnblogs.com/57rongjielong/p/7816427.html