微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringMVC(4)-接收前端参数以及返回前端结果

还是在上一个项目的基础上做(SpringMVC(2)-注解开发MVC这个,这个里边已经写好了视图解析器,jsp文件等信息)

1.新建一个实体类在com.xiaoma文件夹下新建一个pojo.User的实体类,参考代码如下(注意:可以引入lombok插件来简化实体类,通过三行注解代替get,set,有参构造,无参构造等方法

  1.lombok依赖

  <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

  2.实体类代码

package com.xiaoma.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Author:xiaoma
 * FileName:User
 * Data:2022/4/30 10:18
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private int id;
    private String name;
    private int age;
}

2.编写用于测试的controller类,在com.xiaoma.controller文件夹下新建UserController类文件代码如下(代码的含义及讲解在代码注释中)

package com.xiaoma.controller;

import com.xiaoma.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * Author:xiaoma
 * FileName:UserController
 * Data:2022/4/30 10:17
 */
@Controller
@RequestMapping("/u1")
public class UserController {

    //如果前端的参数名和这里的参数名一样的话,可以直接接收,不需要加其他东西
    //比如前端url为:localhost:8080/u1/t1?name=123,那么这里的name参数可以直接被后端接收
    @RequestMapping("/t1")
    public String test1(String name, Model model){
        //接收前端参数
        System.out.println("接收的前端参数为:"+name);
        //返回给前端数据
        model.addAttribute("msg","接收成功1:"+name);
        //视图跳转(注意:要在spring的配置文件中配置好视图解析器,否则无法进行视图跳转)这里通过视图解析器拼接的地址为/WEB-INF/jsp/test.jsp
        return "test";
    }

    //如果前端的参数名和这里的参数名不一样的话,不可以直接接收,需要通过@RequestParam("前端参数名")接收
    //比如前端url为:localhost:8080/u1/t1?username=123,那么这里的username参数不可以直接被后端接收
    @RequestMapping("/t2")
    public String test2(@RequestParam("username") String name, Model model){
        System.out.println("接收的前端参数为:"+name);
        model.addAttribute("msg","接收成功2:"+name);
        return "test";
    }

    //前端接收一个对象,id,name,age,如果前端传递的参数名和实体类中的字段名一致,则可以正常接收,如果不一致,则会显示为null
    //前端URL如果为http://localhost:8080/u1/t3?id=1&name=马传庆&age=3,后端接收的结果为:User(id=1, name=马传庆, age=3)
    //前端URL如果为http://localhost:8080/u1/t3?id=1&username=马传庆&age=3,后端接收的结果为:User(id=1, name=null, age=3)
    @RequestMapping("/t3")
    public String test3(User user){
        System.out.println(user);
        return "test";
    }
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐