JSTL标签和分页查询

作用: 替换java脚本, 配合EL标签式,

执行在服务器端执行, 把jstl执行之后的结果响应给客户端浏览器,

JSTL标签在Html标签之前执行

使用步骤:

1.导入jstl依赖:

2.在使用jstl标签的jsp页面, 使用 taglib指令,导入标签库

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

prefix: 前缀, 任意取名, 规范名: core标签库: c 比如: 使用前缀区分html标签

core所有的标签名:

uri: 对应jstl标签的url, 固定写法, 导入jstl标签库, 选择的是 jsp/jstl的标签库

3.直接使用jstl标签,

if标签:

没有else标签,没有else if标签

choose标签:

​​​​​​​

      
          

优秀

     
               

良好

     
               

及格

     
               

不及格

     
 

foreach标签: for循环

fori循环:


      

${i}

增强for循环:


    
        ${admin.id}
        ${admin.username}
        ${admin.password}
    

for循环: 有一个varStatus="变量" , 得到for循环的循环状态对象

forEach标签还有一个属性:varStatus,这个属性用来指定接收“循环状态”的变量名,例如:,这时就可以使用vs这个变量来获取循环的状态了。

  • count:int类型,当前以遍历元素的个数; 第几次循环,从1开始

  • index:int类型,当前元素的下标; 从0开始

  • first:boolean类型,是否为第一个元素;

  • last:boolean类型,是否为最后一个元素;

分页查询 重要

分页查询的后台实现:

前端传递请求参数:

1.页码 数字

2.每页显示多少行 数字 (有的项目可以不需要传递, 后台给的默认值)

响应给前端的数据:

  1. 总记录数: 查询总条数 sql语句: select count(1) ...

  2. 当前页码: 当前显示第几页 请求参数

  3. 总页数: 计算出来, 根据总记录数与页容量求出的

    • 总页数 = 总记录数%页容量==0?总记录数/页容量:总记录数/页容量+1

  4. 页容量: 每页显示多少行 请求参数

  5. 当前页记录(集合), 当前页显示的数据: sql: select * from... limit 序号,页容量

    java面向对象, 封装, 把5个数据封装成一个对象: 分页实体类 Page

    序号 = (页码 -1) * 页容量

 

sql语句:

select count(1) ...

select * from... limit 序号,页容量

注意: Dao类的一个方法控制在只执行一条sql语句

 

高级查询(动态条件查询)带分页 必须掌握

前端条件是一个动态组合, 可能没有条件, 可能有五个条件,可能一个条件, 可能二个,可能三个...

后台接收这些条件, sql语句的条件动态的

根据条件查询的时候, 很多数据,使用分页, 当点击其他页码, 条件存在()

前端的页面改造

之前点击页码, 使用超链接直接发送请求给后台, 无条件查询表单无关系

修改之后: 点击页码,把点击页码值保存到查询表单中, 提交查询表单

 //分页查询
function query(currentPage){
    //console.log(currentPage);
    //给查询表单的隐藏域赋值
    $("#currentPageInput").val(currentPage);
    //提交查询表单
    $("#queryForm").submit();
}

动态sql:

根据UserCondition的对应属性的值是否有数据,有数据,添加条件, 没有: 不添加

java中sql语句: 字符串, 最终做字符串的拼接

 

你可能感兴趣的:(1024程序员节)