springboot——动态页面返回页面同时传递数据到前端的方式

54 篇文章 1 订阅

方式一:通过Model

后端代码:

    @GetMapping("/test")
    public String hello(@RequestParam(value = "type",required = false) String type, Model model){
        //封装要显示到视图中的数据
        model.addAttribute("msg","吾等为何而战");
        return "test";
    }

方式二:通过ModelAndView

    @GetMapping("/hello")
    public ModelAndView getIndex(@RequestParam(value = "type",required = false) String type){
        //返回一个模型视图对象
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg",type);
        mv.setViewName("index");//返回页面为index
        return mv;
    }

方式三:通过通过ModelMap

@GetMapping("/hello")
public String hello(@RequestParam("username") String name, ModelMap model){
    //封装要显示到视图中的数据
    //相当于req.setAttribute("name",name);
    model.addAttribute("name",name);
    System.out.println(name);
    return "hello";
}

方式四:使用map传递

@GetMapping("/hello")
public String hello(@RequestParam("username") String name, Map<String,Object> map){
    //封装要显示到视图中的数据
    map.put("name",name);
    System.out.println(name);
    return "hello";
}

三种方式前端取值代码类似,下面是方式一对应的前端代码

前端代码:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <script src="../static/js/jquery-1.4.4.min.js"></script>
</head>
<body>
<script th:inline="javascript">
    $(function () {
        var tt=[[${msg}]];//取值
        console.info(tt);

    })

</script>

<h1>testttt</h1>

</body>
</html>

前端结果:
在这里插入图片描述

三者的区别
Model 只有寥寥几个方法只适合用于储存数据,简化了新手对于Model对象的操作和理解;
ModelMap 继承了 LinkedMap ,除了实现了自身的一些方法,同样的继承 LinkedMap 的方法和特性;
ModelAndView 可以在储存数据的同时,可以进行设置返回的逻辑视图,进行控制展示层的跳转。

参考:SpringMVC将数据显示到前端的三种方式
Springboot+Thymeleaf通过JS获取Model传过来的对象的值,存储到Session中

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将前端页面数据插入到数据,你需要进行以下步骤: 1. 创建一个实体类,用于存储前端页面传来的数据,并在该实体类上使用 `@Entity` 注解,表示该类对应数据的一张表。 2. 使用 `@Repository` 注解或者继承 `JpaRepository` 接口,创建一个数据访问层的类,用于与数据库进行交互。 3. 在控制器层,使用 `@Autowired` 注解将数据访问层的类注入到控制器,并在处理前端页面数据的方法调用数据访问层的方法,将数据插入到数据。 以下是一个示例代码: 实体类: ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; // 省略getter和setter方法 } ``` 数据访问层: ```java @Repository public interface UserRepository extends JpaRepository<User, Long> { } ``` 控制器: ```java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserRepository userRepository; @PostMapping("/") public User createUser(@RequestBody User user) { return userRepository.save(user); } } ``` 在上面的代码,`@PostMapping` 注解表示该方法处理 HTTP POST 请求,并将前端页面传来的数据作为 `User` 对象的参数。`@RequestBody` 注解表示将请求体数据绑定到该参数上。 `userRepository.save(user)` 方法将 `User` 对象保存到数据,并返回保存后的 `User` 对象。该对象包含了数据库自动生成的 ID 值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值