如何做翻页

  这是一个查找所有角色翻页的实例:
  使用的架构是ssh,使用struts2
  第一:在dao里面做一个查找所有角色的方法:
  public Page listRole(int offset, int pageSize) {
  String sql = " from DmRole ";
  Query query = this.getSession().createQuery(sql);
  System.out.println(query.getQueryString());
  List list = query.setFirstResult(offset).setMaxResults(pageSiz e).list();
  List countlist = getHibernateTemplate().find("select count(*) from DmRole" );//这是统计从数据库里面查找的记录数
  long totalCount = (Long)countlist.get(0);
  Page page = new Page(totalCount, list);
  return page;
  }
  第二步:service里面的方法
  /*list all roles*/
  public Page listRoles(int offset, int pageSize){
  return dmRoleDAO.listRole(offset, pageSize);
  }
  第三步:action里面的方法
  /*find all roles*/
  public String findAllRoles(){
  int offset = 0;
  int pageSize = 5;
  HttpServletRequest sRequst= ServletActionContext.getRequest();
  if(null != sRequst.getParameter("pager.offset")){
  offset = Integer.parseInt((String)sRequst.getParameter("pag er.offset"));
  }
  Page page = roleManageService.listRoles(offset, pageSize);
  Map request = this.getRequest();
  request.put("list", page.getDates());
  request.put("items", page.getItems());
  return "findAllRolesSuccess";
  }
  第四步:jsp里面的代码
  (1)引入
  (2)这段代码需要放在你需要翻页的表单外
  
   -->
  (3)和(2)的代码相对应的结束代码
  分页菜单页面-->
  
  
  
  (4)pager_menu.jsp代码如下:
  
  
  
  
  
  
  **/
  %>
  
  function nextPage(url) {
  //alert(url);
  var theform = document.forms[0];
  
  theform = document.
  
  theform.action = url;
  theform.submit();
  }
  
  
  
  
  
  
  【总数:】
  【每页显示:】
  
  ')">【首页】
  
  ">
  
  ')">【上一页】
  
  上一页
  
  
  
  
  
  
  ')">
  
  
  
  
  ')">【下一页】
  
  下一页
  
  
   0) { %>
  
  ')">【尾页】
  
  
  
  
  
  (5)所有jsp代码如下:
  
  
  
  
  
  
  
  
  角色管理
  /skin/css/common.css" />
  /skin/css/module.css" />
  /skin/css/module1.css" />
  /js/jquery.js">
  /js/common.js">
  
  function del(){
  if(confirm("你真的想删除该记录吗?")){
  return true;
  } else {
  return false;
  }
  }
  
  
  
  
  
  
  
  
  
  
  
  新增角色
  
  
  
  
  
  
  用户列表
  
  
  
  
  
   -->
  
  
  
  
  
  角色名称
  角色权限
  操作
  
  
  
  
  
  
  :
  
  
### 实现翻页功能的方法 翻页功能是一种常见的交互设计模式,广泛应用于网页、移动应用和其他软件界面中。以下是几种主流技术栈下实现翻页功能的具体方法: #### JavaScript 中的翻页功能 在前端开发中,可以利用 JavaScript 动态控制 DOM 的显示与隐藏来模拟翻页效果。例如,可以通过数组存储每一页的内容,并根据用户的操作切换当前展示的页面。 ```javascript let currentPageIndex = 0; const pages = ["第一页", "第二页", "第三页"]; function showPage() { const pageContainer = document.getElementById("page-container"); if (currentPageIndex >= 0 && currentPageIndex < pages.length) { pageContainer.textContent = pages[currentPageIndex]; } } // 切换到上一页 function prevPage() { if (currentPageIndex > 0) { currentPageIndex--; showPage(); } } // 切换到下一页 function nextPage() { if (currentPageIndex < pages.length - 1) { currentPageIndex++; showPage(); } } ``` 此代码片段展示了如何通过 `showPage` 函数动态更新页面内容[^1]。 --- #### MySQL 数据库中的分页查询 对于基于数据库的应用程序,通常会涉及大量数据的处理。为了优化性能并提升用户体验,可以在 SQL 查询语句中使用 `LIMIT` 子句实现分页功能。 假设有一个名为 `items` 的表,其结构如下: | id | name | |----|----------| | 1 | item_1 | | 2 | item_2 | 要获取指定页的数据,可采用以下公式计算偏移量和记录数: - 当前页码为 `curPage`; - 每页显示条目数量为 `pageSize`。 SQL 查询示例: ```sql SELECT * FROM items LIMIT (curPage - 1) * pageSize, pageSize; ``` 这种分页方式能够有效减少服务器端的压力,同时提高客户端加载效率[^2]。 --- #### Android ViewPager 组件实现翻页 在 Android 平台中,`ViewPager` 是一种常用的组件用于创建滑动式的视图容器。开发者可通过自定义适配器绑定多个子视图至 `ViewPager` 来完成复杂的翻页逻辑。 下面是一个简单的例子说明如何配置 `ViewPager` 及关联 XML 布局文件: ```java import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager.widget.ViewPager; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager viewPager = findViewById(R.id.view_pager); MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(adapter); } } ``` 对应的 XML 文件分别命名为 `view_one.xml`, `view_two.xml`, 和 `view_three.xml`,它们共同构成了完整的翻页体验[^3]。 --- #### 使用手势识别机制实现在 Android 应用内的翻页 除了依赖于预构建的 UI 控件外,还可以借助手势监听器捕获用户的手指滑动事件从而手动调整界面上所呈现的信息流方向。具体来说,在继承类 `GestureDetector.SimpleOnGestureListener` 后重写回调方法即可捕捉快速划过的动作特征参数如速度矢量等信息作为判断依据之一决定下一步骤执行何种业务流程。 核心部分伪代码如下所示: ```java @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { final int SWIPE_MIN_DISTANCE = 120; final int SWIPE_THRESHOLD_VELOCITY = 200; try { if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) return false; // Right to Left swipe action if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { onNext(); // Trigger next page logic here. } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { onPrev(); // Trigger previous page logic here. } } catch (Exception exception) {} return true; } ``` 上述片段解释了如何检测水平方向上的扫动行为以便进一步调用相应的导航命令[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值