为什么exeTime[0]: 2023-06-10 00:00:00 exeTime[1]: 2023-06-14 00:00:00传输到后端但是显示的搜索数据为空
时间: 2023-09-03 11:08:52 浏览: 57
可能是因为你在前端传递 `exeTime` 参数时,只传递了日期时间范围的起始时间(即 `exeTime[0]`),而没有传递结束时间(即 `exeTime[1]`)。这可能会导致后端无法正确解析日期时间范围,从而无法搜索到符合条件的数据。因此,你需要确保在前端正确传递了日期时间范围的起始时间和结束时间,并且在后端正确解析了这两个时间参数。你可以在后端打印出接收到的参数,以便排查问题。另外,你还需要检查一下后端查询数据的逻辑是否正确,可能是查询条件不正确导致没有搜索到数据。
相关问题
后端使用 private List<Date> exeTime;前端 <el-form-item label="执行时间" prop="exeTime"> <el-date-picker clearable v-model="queryParams.exeTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" placeholder="请选择创建时间"> </el-date-picker> </el-form-item>查询不来数据数组返回为空
前端传递的参数是一个 Date 类型的数组,而后端接收的参数是一个 List<Date> 类型的,需要在前端传递参数时将数组转换为 List。可以在前端代码中使用 JavaScript 的 Array.prototype.map() 方法将 Date 类型的数组转换为字符串类型的数组,然后再传递给后端。修改后的代码如下:
```
<el-form-item label="执行时间" prop="exeTime">
<el-date-picker clearable
v-model="queryParams.exeTime"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
placeholder="请选择创建时间">
</el-date-picker>
</el-form-item>
<script>
export default {
data() {
return {
queryParams: {
exeTime: []
}
};
},
methods: {
search() {
// 使用 Array.prototype.map() 方法将 Date 类型的数组转换为字符串类型的数组
let exeTime = this.queryParams.exeTime.map(item => {
return item.toLocaleString();
});
// 将转换后的参数传递给后端
let params = {
exeTime: exeTime
};
// 发送请求
axios.get('/api/data', { params: params })
.then(res => {
console.log(res.data);
})
.catch(err => {
console.log(err);
});
}
}
}
</script>
```
这样就可以将前端传递的参数转换为后端需要的 List 类型了。
前端: <el-form-item label="执行时间" prop="exeTime"> <el-date-picker clearable v-model="queryParams.exeTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" placeholder="请选择创建时间"> </el-date-picker> </el-form-item>, methods: { /** 查询命令执行记录列表 */ getList() { this.queryParams.exeTime=JSON.stringify(this.queryParams.exeTime) this.loading = true; listExecuteRecord(this.queryParams).then(response => { this.executeRecordList = response.rows; this.total = response.total; this.loading = false; }); },后端: @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") @NotNull(message = "执行时间不能为空", groups = { AddGroup.class, EditGroup.class }) private List<Date> exeTime;查询不出来exetime的数据
根据你提供的前端代码,可以看出在传递参数时,将 `queryParams.exeTime` (日期时间范围)转为了 JSON 字符串,然后再发送给后端。但是后端接收参数时,使用的是 `List<Date>` 类型,而不是字符串类型。因此,可以尝试修改前端代码,将 `queryParams.exeTime` 直接传递给后端,不需要将其转为字符串。另外,检查一下后端是否正确接收了参数,以及是否设置了正确的日期时间格式。