java中pageInfo分页带条件查询+查询条件的回显

代码如下:解析在下边
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/1/17
  Time: 19:10
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="/jquery-1.10.2.min.js"></script>
    <style>
        body{ text-align:center}
        #div{
            background: gray;
            border:1px solid #000;
            width:600px;
            height:300px;
            position:relative;
            top: 50px;
            left: 100px;
        }
    </style>
</head>
<body>
<div id="div">
    <form id="form" action="/sale/list.html">
        <input type="hidden" name="pageNum" id="pageNum"/>
   销售信息查询:      排序方式<select name="order" ">
            <option value="created_date" ${param.order=='created_date'?"selected":""}>日期</option>
            <option value="total" ${param.order=='total'?"selected":""}>单笔总额</option>
       </select>
        <input type="submit" value="提交 "/>
    </form>
    <table border="1">

        <tr>
            <td>id</td>
            <td>商品</td>
            <td>单价</td>
            <td>数量</td>
            <td>总价</td>
            <td>销售日期</td>
            <td>销售人员</td>
        </tr>
        <c:forEach items="${pageInfo.list}" var="sale">
            <tr>
                <td>${sale.id}</td>
                <td>${sale.product.proName}</td>
                <td>${sale.saleSize}</td>
                <td>${sale.saleNum}</td>
                <td>${sale.total}</td>
                <%--<fmt:formatDate value="${sale.createDate}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>--%>
                <td><fmt:formatDate value="${sale.createdDate}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate></td>
                <td>${sale.userName}</td>
            </tr>
        </c:forEach>
        <tr><td colspan="7">         
            <a href="#" οnclick="page(1)">首页</a>|
            <a  href="#" οnclick="page(${pageInfo.pageNum-1})">上一页</a>|
            <a  href="#" οnclick="page(${pageInfo.pageNum+1})">下一页</a>|
            <a href="#" οnclick="page(${pageInfo.pages})">末页</a>|
            第${pageInfo.pageNum}页/
            共${pageInfo.pages}页
            (${pageInfo.total}条数据)</td></tr>
    </table>
<script>
function page(pageNum) {
    $("#pageNum").val(pageNum);
    $("#form").submit();
}
</script>
</div>
</body>
</html>
解析:将查询条件放入到到form表单中,在form中添加一个隐藏标签
  <input type="hidden" name="pageNum" id="pageNum"/>
在分页下边添加方法
οnclick="page(1);page内的参数是pegeNum  
在JavaScript中添加方法
function page(pageNum) {
    $("#pageNum").val(pageNum);
    $("#form").submit();
} 并且给 隐藏标签设值;通过form中的id调用submit函数提交form表单

注意:数据的回显  普通数据用param.属性名

特殊数据则需要特殊的方法

代码及解析如下

controller
public String list(Employee employee,Model model,@RequestParam(defaultValue = "price")String order,@RequestParam(defaultValue = "1") Integer pageNum){
    List<Dept> deptList = deptService.getDeptList();
    List<Position> positionList = positionService.getPositionList();
    PageInfo<Employee> pageInfo = employeeService.getEmpList(employee,pageNum,3,order);
    model.addAttribute("deptList",deptList);
    model.addAttribute("positionList",positionList);
    model.addAttribute("pageInfo",pageInfo);
    return "emp_list";
}
<c:forEach items="${deptList}" var="dept">
    <option value="${dept.id}" ${employee.dept.id==dept.id?'selected':''}>${dept.name}</option>
</c:forEach>

在这里 dept是持久化类 ;作为持久化类Employee的属性;
如果你要回显需要用传入controller的持久化类Employee的首字母小写employee.dept.id  来回显你的数据
${employee.dept.id==dept.id?'selected':''}三目判断回显数据




### 实现菜品管理系统的分页查询功能 要在菜品管理系统中实现分页查询功能,可以按照以下方式设计和开发。以下是基于提供的引用内容以及常见的分页查询逻辑所整理的内容。 #### 方法签名与注解 在 `DishController` 中定义一个名为 `page` 的 GET 请求处理方法,该方法接受参数并返回分页结果。此方法需标注相应的 Spring MVC 注解以便支持 RESTful 风格的 API 接口调用[^1]: ```java @GetMapping("/page") @ApiOperation("菜品分页查询") public Result<PageResult> page(DishPageQueryDTO dishPageQueryDTO) { log.info("菜品分页查询:{}", dishPageQueryDTO); PageResult pageResult = dishService.pageQuery(dishPageQueryDTO); return Result.success(pageResult); } ``` 此处的关键在于: - 使用 `@GetMapping` 定义 HTTP GET 请求路径 `/page`。 - 利用 Swagger 提供的 `@ApiOperation` 描述接口的功能用途。 - 参数对象 `dishPageQueryDTO` 应当包含分页所需的必要字段(如当前页码、每页大小),以及其他筛选条件(如关键词)。 --- #### 数据交互与业务逻辑 为了满足前端需求,在分页查询的结果集中不仅需要提供数据列表,还应附加额外的信息——例如分类名称 (`categoryName`)。这一步通常由服务层负责完成,具体实现在 `dishService.pageQuery()` 方法内部[^2]。 假设数据库表结构如下: - **dishes**: 存储菜品基本信息 (id, name, price 等)。 - **categories**: 存储分类信息 (id, categoryName)。 可以通过 SQL 查询语句联结两张表,或者先查出菜品记录再逐一补充其所属分类名。最终封装成统一的数据模型传递给控制器层。 --- #### 响应体格式化 对于 JSON 格式的响应体,推荐采用通用的成功/失败模式进行包装。即无论操作成功与否都返回一致的形式,仅改变状态标志位即可。这里展示了一个典型的 `Result<T>` 类型定义及其静态工厂方法: ```java @Data @AllArgsConstructor @NoArgsConstructor public class Result<T> { private boolean success; private String message; private T data; public static <T> Result<T> success(T data){ return new Result<>(true,"success",data); } public static <T> Result<T> failure(String msg){ return new Result<>(false,msg,null); } } ``` 这样做的好处是可以让客户端更容易解析服务器反馈的消息内容,并据此采取相应措施。 --- #### 修改页面中的菜品信息回显 除了普通的分页显示外,有时也需要针对特定 ID 加载单条记录详情用于编辑场景下的界面初始化工作。此时可通过单独设立另一个路由入口专门服务于此类目的;当然也可以沿用现有的分页机制作为基础扩展而来[^3]。 比如新增加一条 URL 映射规则至 Controller 内部: ```java @GetMapping("/{id}") @ApiOperation("根据ID获取指定菜品详情") public Result<DishDetailVO> getById(@PathVariable Long id){ DishDetailVO detailVo=dishService.getByIdWithFlavors(id); return Result.success(detailVo); } ``` 其中 `detailVo` 不仅仅限于基本属性还包括关联子项譬如口味配置等复杂嵌套关系。 --- ### 注意事项 以上描述涵盖了从网络协议层面直至实际编码实践各个环节要点概述。开发者应当依据项目具体情况灵活调整设计方案细节部分。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值