在使用若依(RuoYi)框架时,通常需要返回一个包含数据和总记录数的分页结果。若依框架中,分页结果通常封装在 AjaxResult
或 TableDataInfo
类中。以下是一个示例,展示如何在自定义实体类的情况下返回分页数据和总记录数。
1. 定义实体类
首先,定义你的实体类 SwitchRecognitionLogResponse
:
public class SwitchRecognitionLogResponse {
private Long id;
private String name;
private String status;
private Date createTime;
// Getters and Setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
2. 创建分页方法
在你的服务层或控制器中,创建一个方法来处理分页逻辑并返回结果。假设你已经有一个方法 getDataTable
来获取分页数据。
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("/api/recognition")
public class RecognitionController extends BaseController {
@GetMapping("/log")
public R<TableDataInfo> getRecognitionLogs() {
// 模拟数据
List<SwitchRecognitionLogResponse> recognitionLogResponses = new ArrayList<>();
for (int i = 0; i < 10; i++) {
SwitchRecognitionLogResponse log = new SwitchRecognitionLogResponse();
log.setId((long) i);
log.setName("Recognition Log " + i);
log.setStatus("Active");
log.setCreateTime(new Date());
recognitionLogResponses.add(log);
}
// 模拟总记录数
int total = 100;
// 创建 TableDataInfo 对象
TableDataInfo tableDataInfo = new TableDataInfo();
tableDataInfo.setCode(200);
tableDataInfo.setMsg("success");
tableDataInfo.setRows(recognitionLogResponses);
tableDataInfo.setTotal(total);
return R.ok(tableDataInfo);
}
}
3. 返回分页数据
在上述代码中,我们创建了一个 TableDataInfo
对象,其中包含以下内容:
code
:状态码,通常为200表示成功。msg
:返回信息,通常为 “success”。rows
:分页数据,即recognitionLogResponses
。total
:总记录数。
最后,我们使用 R.ok
方法将 TableDataInfo
封装为 AjaxResult
对象并返回。
4. 测试接口
启动你的应用后,可以通过访问 /api/recognition/log
接口来测试返回的分页数据。返回的 JSON 数据应该类似于以下格式:
{
"code": 200,
"msg": "success",
"data": {
"code": 200,
"msg": "success",
"rows": [
{
"id": 0,
"name": "Recognition Log 0",
"status": "Active",
"createTime": "2025-05-26T14:30:00"
},
{
"id": 1,
"name": "Recognition Log 1",
"status": "Active",
"createTime": "2025-05-26T14:30:00"
},
...
],
"total": 100
}
}
总结
通过上述步骤,你可以轻松地在若依框架中返回分页数据和总记录数。希望这个示例对你有帮助!如果有任何问题或需要进一步的解释,请随时告诉我。