我是靠谱客的博主 野性乌龟,最近开发中收集的这篇文章主要介绍Spring MVC入门学习—参数传递以及页面跳转一、参数传递:二、页面跳转 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

一、参数传递:

(一)View—Controller

方式一:提交的域名称和处理方法的参数名一致

 方式二:提交的域名称和处理方法的参数名不一致

 方法三:提交的是一个对象

 (二)Controller—View

第一种 : 通过ModelAndView(不常用)

第二种 : 通过ModelMap(不常用)

第三种 : 通过Model(常用)

二、页面跳转 

1、 请求转发页面

2、转发action

3、重定向页面

4、重定向action


一、参数传递:

(一)View—Controller

方式一:提交的域名称和处理方法的参数名一致

提交数据 : http://localhost:8080/hello?name=梁三岁

处理方法 :springMVC自动获取参数名为name的参数值,并赋值给处理方法的同名参数

@Controller
public class DemoOneController {
    Logger logger= Logger.getLogger(DemoOneController.class);
    @RequestMapping("/demo1.action")
    public String demo1(String name){
        logger.info("进入demo1的参数是:"+name);
        return "login";
    }
}

 

 方式二:提交的域名称和处理方法的参数名不一致

提交数据 : http://localhost:8080/hello?username=梁三岁

处理方法 :使用注解@RequestParam(“指定请求参数名”)修饰处理方法的参数,表示获取指定名字参数赋值给他所有修饰的方法

@RequestParam表示参数,默认非空

    @RequestMapping("/demo2.action")
    public String demo2(@RequestParam String name){
        logger.info("进入demo2的参数是:"+name);
        return "login";
    }

如果在地址栏不写参数, 则会报错,如下:

在地址栏输入参数name=梁三岁,在控制台就会输出地址栏提交的参数值 

 

 

 方法三:提交的是一个对象

要求提交的表单域和对象的属性名一致 , 参数使用对象即可,但是有一个要求就是我们需要保持参数名和对象属性名称一样,SpringMVC自动为我们重前端请求地址获取参数值,按照参数的name属性为我们对象相同属性名注入(说白了就是使用set注入)

 实体类

package com.lss.po;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author : 梁三岁
 * @name :用户实体类
 * @create 2022/8/31 20:40
 */
public class User {

    private String name;

    private String pass;

    public User() {
    }

    public User(String name, String pass) {
        this.name = name;
        this.pass = pass;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }
}
    @RequestMapping("/demo3.action")
    public String demo3(User user){
        logger.info("进入demo3的参数是:"+user.getName()+"t"+user.getPass());
        return "login";
    }

 

 (二)Controller—View

第一种 : 通过ModelAndView(不常用)

    @RequestMapping("/demo5.action")
    public ModelAndView demo5(String name,String pass){
        //创建ModelAndView对象
        ModelAndView modelAndView = new ModelAndView();
        //把用户名、密码放入作用域
        modelAndView.addObject("name",name);
        modelAndView.addObject("pass",pass);
        //设置视图
        modelAndView.setViewName("userInfo");
        return modelAndView;
    }

第二种 : 通过ModelMap(不常用)

    @RequestMapping("/demo6.action")
    public String demo6(@RequestParam("name") String name,@RequestParam("pass") String pass, ModelMap model){
        model.addAttribute("name",name);
        model.addAttribute("pass",pass);
        return "userInfo";
    }

第三种 : 通过Model(常用)

    @RequestMapping("/demo7.action")
    public String demo7(@RequestParam("name") String name, @RequestParam("pass") String pass, Model model){
        model.addAttribute("name",name);
        model.addAttribute("pass",pass);
        return "userInfo";
    }

三种方式对比:

Model只有几个方法适用与存储数据

ModelMap继承与LinkedHashMap

ModelAndView 即可以存储数据,又可以设置返回视图层,控制视图跳转逻辑

一般情况下我们都是使用Model

二、页面跳转 

分为请求转发和重定向

衍生出四种是:

  • 请求转发页面,
  • 转发action,
  • 重定向页面,
  • 重定向action

1、 请求转发页面

 @RequestMapping("/one.action")
    public String one(){
        System.out.println("这是请求转发页面跳转.........");
        return "main";  //默认是请求转发,使用视图解析器拼接前缀后缀进行页面跳转
    }

2、转发action

    @RequestMapping("/two.action")
    public String two(){
        System.out.println("这是请求转发action跳转.........");
        //forward: 这组字符串可以屏蔽前缀和后缀的拼接.实现请求转发跳转
        return "forward:/other.action";  //默认是请求转发,使用视图解析器拼接前缀后缀进行页面跳转
    }

3、重定向页面

    @RequestMapping("/three.action")
    public String three(){
        System.out.println("这是重定向页面.......");
        //redirect:  这组字符串可以屏蔽前缀和后缀的拼接.实现重定向跳转
        return "redirect:/admin/main.jsp";
    }

4、重定向action

    @RequestMapping("/four.action")
    public String four(){
        System.out.println("这是重定向action.......");
        //redirect:  这组字符串可以屏蔽前缀和后缀的拼接.实现重定向跳转
        return "redirect:/other.action";
    }

最后

以上就是野性乌龟为你收集整理的Spring MVC入门学习—参数传递以及页面跳转一、参数传递:二、页面跳转 的全部内容,希望文章能够帮你解决Spring MVC入门学习—参数传递以及页面跳转一、参数传递:二、页面跳转 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部