Spring Boot中Controller接收对象列表实现

简介: Spring Boot中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";
  }
} 

对应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"/>
</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”。通过这种形式来指定列表中的第几个元素的具体属性值是什么。


目录
相关文章
|
3月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
4天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
14 2
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
52 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
21天前
|
前端开发 Java 测试技术
深入剖析:Spring Boot Controller中请求处理方法的访问修饰符
【10月更文挑战第21天】 在Spring Boot应用中,Controller类中的请求处理方法通常用于处理HTTP请求。这些方法的访问修饰符(private或public)对方法的行为和可访问性有着重要影响。本文将深入探讨在Controller中使用private和public修饰符的区别,以及它们对Spring MVC框架的影响。
24 8
|
1月前
|
Java Spring
获取spring工厂中bean对象的两种方式
获取spring工厂中bean对象的两种方式
37 1
|
1月前
|
前端开发 Java Spring
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
【Spring】“请求“ 之传递单个参数、传递多个参数和传递对象
106 2
|
1月前
|
存储 Java 程序员
SpringIOC和DI的代码实现,Spring如何存取对象?@Controller、@Service、@Repository、@Component、@Configuration、@Bean DI详解
本文详细讲解了Spring框架中IOC容器如何存储和取出Bean对象,包括五大类注解(@Controller、@Service、@Repository、@Component、@Configuration)和方法注解@Bean的用法,以及DI(依赖注入)的三种注入方式:属性注入、构造方法注入和Setter注入,并分析了它们的优缺点。
28 0
SpringIOC和DI的代码实现,Spring如何存取对象?@Controller、@Service、@Repository、@Component、@Configuration、@Bean DI详解
|
1月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
58 2
|
3月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
121 3
|
3月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
180 2