标签导航:

java后端如何接收并处理前端tab选项传递的多个键值对参数?

Java后端处理前端Tab选项传递的多个键值对参数

前端通过Tab选项卡传递多个键值对参数到Java后端,实现高效数据获取。本文提供一种基于JSON格式传递参数和Java枚举类处理参数的方案。

Java枚举类定义键值对

首先,使用Java枚举类定义前端可能传递的键值对:

public enum DatePeriodEnum {
    WEEK("week", "7"),
    MONTH("month", "30"),
    QUARTER("quarter", "90"),
    HALFYEAR("halfyear", "180"),
    YEAR("year", "365");

    private final String code;
    private final String value;

    DatePeriodEnum(String code, String value) {
        this.code = code;
        this.value = value;
    }

    public String getCode() {
        return code;
    }

    public String getValue() {
        return value;
    }
}

前端参数传递 (JavaScript)

前端使用JavaScript将参数以JSON格式传递给后端:

const params = {
  datePeriod: "week",
  otherParam: "someValue" // 可以添加其他参数
};

fetch('/getData', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(params)
})
.then(response => response.json())
.then(data => {
  // 处理后端返回的数据
});

Java后端参数接收与处理

后端接口使用@RequestBody注解接收JSON数据:

@PostMapping("/getData")
public ResponseEntity<String> getData(@RequestBody Map<String, String> params) {
    String datePeriodCode = params.get("datePeriod");

    for (DatePeriodEnum periodEnum : DatePeriodEnum.values()) {
        if (periodEnum.getCode().equalsIgnoreCase(datePeriodCode)) {
            // 处理匹配到的键值对
            String value = periodEnum.getValue();
            // ... 使用 value 进行后续操作 ...
            return ResponseEntity.ok("Data processed successfully: " + value);
        }
    }
    return ResponseEntity.badRequest().body("Invalid datePeriod code");
}

此方法使用Map直接接收所有键值对,更灵活地处理多个参数。 代码中包含了错误处理,如果datePeriod无效则返回400错误。 您可以根据实际需求扩展此方法,处理更多参数和更复杂的逻辑。

通过以上步骤,即可实现前端Tab选项传递多个键值对参数到Java后端,并进行高效处理。 记住根据实际情况调整枚举类和后端处理逻辑。