还是在上一个项目的基础上做(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"; } }
浙公网安备 33010602011771号