zoukankan      html  css  js  c++  java
  • springmvc值传递

    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     }
     1     /**
     2      * 页面传值方式三:
     3      * 通过RequestParam注解来解决表单的name与请求处理方法参数名不一致问题 @RequestParam("name")String
     4      * userName 告诉spring从request的name的参数名上获取值绑定到userName参数上
     5      * 
     6      */
     7     @RequestMapping("/three.do")
     8     // RequestParam中的required是指这个参数是否客户端必须提供,defaultValue则是如果没有提供该参数默认值是什么
     9     public String three(@RequestParam(name = "name", required = false, defaultValue = "rjl") String userName,
    10             @RequestParam(name = "pwd", required = false) String password) {
    11         System.out.println(userName+";"+password);
    12         User user = userService.login(new User(userName, password));
    13         System.out.println(user);
    14         if (user != null) {
    15             return "main";
    16         } else {
    17             return "login";
    18         }
    19     }

    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     }
  • 相关阅读:
    CODE
    JS中如何进行对象的深拷贝
    js数组操作---改变原数组和不改变原数组的方法整理
    echarts做双柱图
    如何在react中使用OrgChart?
    如何让背景透明?
    如何使用css选择器隐藏滚动条?
    input 修改placeholder中颜色和字体大小
    在input、textarea 标签的placeholder中实现换行的方法
    React Hooks异步操作防踩坑指南
  • 原文地址:https://www.cnblogs.com/57rongjielong/p/7816427.html
Copyright © 2011-2022 走看看