pom.xml 文件导入 lombok 的依赖
XML
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
</dependency>
@Controller 表示这是一个控制器
@RequestParam 表示从前端接收
将返回的结果传递给前端一般用 Model
java
package com.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/user")
public class UserController {
//localhost:8080/user/test?name=xx
@GetMapping("/test")
public String test(@RequestParam("name") String name, Model model){
//1.接收前端参数
System.out.println(name);
//2.将返回的结果传递给前端
model.addAttribute("msg",name);
//3.视图跳转
return "test"; //test.jsp
}
}
@AllArgsConstructor 有参构造器
@NoArgsConstructor 无参构造器
(需要先导入 lombok 的 jar 包才能引用)
java
package com.demo.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor //有参构造器
@NoArgsConstructor //无参构造器
public class User {
private String name;
private int age;
}
接收前端用户传递的参数,判断参数的名字,假设名字在方法上,可以直接使用
传递的参数必须要和对象接收的参数字段保持一致
java
package com.demo.controller;
import com.demo.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/user")
public class UserController {
/*
1.接收前端用户传递的参数,判断参数的名字,假设名字在方法上,可以直接使用
2.假设传递的是一个对象User,匹配User对象中的字段名
*/
@GetMapping("/test2")
public String test2(User user){
System.out.println(user);
return "test";
}
}
比如地址栏输入 http:localhost:8080/user/test2?name=hh&age=18
(要根据自己创建的类来设置参数,上述用了 User 类,就用 User 类里的变量)
输出结果为:
数据显示到前端的方法:
- ModelAndView
先 new 一个 ModelAndView()
再通过 addObject 封装数据
最后 setViewName 设置返回的视图名字
- Model
方法括号里使用 Model 接口
通过 addAttribute 封装数据
最后返回给视图
- ModelMap
按 ctrl + h 查看树
ModelMap 继承了 LinkedHashMap,拥有它的全部功能
使用方法与 Model 类似
三者对比:
-
Model 只有几个方法适用于存储数据
-
ModelMap 除了实现自身方法,同时继承 LinkedHashMap 的方法和特性
-
ModelAndView 在存储数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转