详解SpringBoot中Controller接收对象列表实现

如果Spring Boot中对应的Controller要接收一个对象,该对象中又存放了一个List列表,那么页面该如何传递相关应的参数信息呢。

本篇文章给大家一个简单的示例,提供一种实现方式。

实体类

首先看实体类的结构(注意使用了Lombok):

@Data
public class Rules {
 private List<Rule> rules;
}

对应Rule实体类代码如下:

@Data
public class Rule {

 /**
 * 类名
 */
 private String className;

 /**
 * 字段名称
 */
 private String column;

 /**
 * 操作符
 */
 private String operate;

 /**
 * 对应值
 */
 private String value;
}

对应Controller方法

@Controller
public class ManagerRulesController {

 @PostMapping("/rules/add")
 public String addDrl(Rules rules) {

 if (rules != null) {
  List<Rule> ruleList = rules.getRules();

  for (Rule rule : ruleList) {
  // 具体业务处理
  }
 return "result";
 }
} 

对应页面呈现

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>规则页面管理页面</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/css/bootstrap.min.css" rel="external nofollow" />
</head>
<body class="container">
<h4>页面拼接模式</h4>

<form method="post" action="/rules/add">
  <#--第一条条件-->
  <div id="condition-0">
    <div class="form-group">
      <label>金额:</label>
      <input type="hidden" name="rules[0].column" value="amount">
      操作属性操作:
      <select class="form-control" name="rules[0].operate">
        <option value=">">大于</option>
        <option value="<">小于</option>
      </select>
      属性值:
      <input type="text" class="form-control" name="rules[0].value" placeholder="输入值" value="1">
    </div>
  </div>
  <div id="condition-1">
    <div class="form-group">
      <label>金额:</label>
      <input type="hidden" name="rules[1].column" value="amount">
      操作属性操作:
      <select class="form-control" name="rules[1].operate">
        <option value="<">小于</option>
        <option value=">">大于</option>
      </select>
      属性值:
      <input type="text" class="form-control" name="rules[1].value" placeholder="输入值" value="100">
    </div>
  </div>
  <button type="submit" class="btn btn btn-info">提交</button>
</form>
</body>
</html>

注意要提交的页面元素的name值为“rules[1].column”。通过这种形式来指定列表中的第几个元素的具体属性值是什么。

到此这篇关于详解SpringBoot中Controller接收对象列表实现的文章就介绍到这了,更多相关SpringBoot中Controller接收对象列表内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Spring Boot从Controller层进行单元测试的实现

    单元测试是程序员对代码的自测,一般公司都会严格要求单元测试,这是对自己代码的负责,也是对代码的敬畏. 一般单元测试都是测试Service层,下面我将演示从Controller层进行单元测试. 无参Controller单元测试示例: package com.pingan.bloan.genesis.controller.base; import org.junit.After; import org.junit.Before; import org.junit.runner.RunWith; im

  • 解决Spring Boot 正常启动后访问Controller提示404问题

    问题描述 今天重新在搭建Spring Boot项目的时候遇到访问Controller报404错误,之前在搭建的时候没怎么注意这块.新创建项目成功后,作为项目启动类的Application在com.blog.start包下面,然后我写了一个Controller,然后包的路径是com.blog.ty.controller用的@RestController 注解去配置的controller,然后路径也搭好了,但是浏览器一直报404.最后找到原因是Spring Boot只会扫描启动类当前包和以下的包 ,

  • 详解Spring Boot中Controller用法

    Controller Controller是SpringBoot里最基本的组件,他的作用是把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果.他的重点就在于如何从HTTP请求中获得信息,提取参数,并分发给不同的处理服务. 基本组成 一个最经典的Controller应该大概长这样: package com.example.demo.controller; import org.springframework.stereotype.Controller; imp

  • springboot-controller的使用详解

    Controller的使用 一. @Controller:处理http请求 @RestController:Spring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller @RequestMapping:配置url映射 1.对于控制器层,如果只使用@Controller注解,会报500,即controller必须配合一个模板来使用: 使用spring官方的一个模板: <dependency> <groupId>org.springframew

  • SpringBoot Controller Post接口单元测试示例

    概述 在日常的开发中,我们一般会定义一个service层,用于实现业务逻辑,并且针对service层会有与之对应的齐全的覆盖率高的单元测试.而对于controller层,一般不怎么做单元测试,因为主要的核心业务逻辑都在service层里,controller层只是做转发,调用service层接口而已.但是还是建议使用单元测试简单的将controller的方法跑一下,看看转发和数据转换的代码是否能正常工作. 在Spring Boot里对controller层进行单元测试非常简单,只需要几个注解和一

  • Spring Boot的Controller控制层和页面

    一.项目实例 1.项目结构 2.项目代码 1).ActionController.Java: package com.example.controller; import java.util.Date; import java.util.Map; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.spring

  • SpringBoot之Controller的使用详解

    本文介绍了 SpringBoot之Controller的使用,分享给大家,具体如下: 1.@Controller:处理http请求 2.@RestController:Spring4之后新加的注解,原来返回json需要@ResponseBody配合@Controller 3.@RequestMapping 配置url映射 1.现在有一个需求(即可以使用localhost:8080/hello和localhost:8080/hi都可以访问): @RestController public clas

  • 详解SpringBoot Controller接收参数的几种常用方式

    第一类:请求路径参数 1.@PathVariable 获取路径参数.即url/{id}这种形式. 2.@RequestParam 获取查询参数.即url?name=这种形式 例子 GET http://localhost:8080/demo/123?name=suki_rong 对应的java代码: @GetMapping("/demo/{id}") public void demo(@PathVariable(name = "id") String id, @Re

  • spring boot中controller的使用及url参数的获取方法

    类上加上@RequestMapping其访问的地址就是类上的加上方法上的菜能访问到该方法,例如上图的地址就是/hello/say @RequestMapping(value = "/hello",method = RequestMethod.GET) 和@GetMapping(value = "/hello")是等同的 这样就能获取url参数的值了,其结果如下 总结 以上所述是小编给大家介绍的spring boot中controller的使用及url参数的获取方法,

  • spring-mvc/springboot使用MockMvc对controller进行测试

    网上基本都是参考官方的使用方式,使用了import static,个人感觉这种方式特别不好,代码提示性不友好.所以在此进行说明,也方便自己以后使用. 1. 引入spring-test相关jar包,springboot只需引入spring-boot-starter-test即可 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tes

随机推荐