分页技巧__改进JSP页面中的公共分页代码

自定义过滤条件问题

只有一个url地址不一样写了很多行代码

public>>pageView.jspf添加

分页技巧__实现分页时可以有自定义的过滤与排序条件

ForumAction.java

@Controller
@Scope("prototype")
public class ForumAction extends BaseAction<Forum> { /**
* 0表示查看全部主题
* 1表示只看精华帖
*/
private int viewType = 0;
/**
* 0 表示默认排序(所有置顶帖在前面,并按最后更新时间降序排列)<br>
* 1 表示只按最后更新时间排序<br>
* 2 表示只按主题发表时间排序<br>
* 3 表示只按回复数量排序
*/
private int orderBy = 0;
/**
* true 表示升序<br>
* false 表示降序
*/
private boolean asc = false; /**板块列表*/
public String list() {
List<Forum> forumList = forumService.findAll();
ActionContext.getContext().put("forumList", forumList);//放在map中
return "list"; }
/**显示单个版块(主题列表)*/
public String show() {
//准备数据:forum
Forum forum = forumService.getById(model.getId());
ActionContext.getContext().put("forum", forum); //准备数据:topicList
// List<Topic> topicList = topicService.findByForum(forum);
// ActionContext.getContext().put("topicList", topicList); //准备分页信息v1版
// PageBean pageBean = topicService.getPageBeanByForum(pageNum, pageSize, forum);
// ActionContext.getContext().getValueStack().push(pageBean); // //准备分页信息v2版
// String hql = "FROM Topic t WHERE t.forum=? ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC, t.lastUpdateTime DESC";
// List<Object> parameters = new ArrayList<Object>();
// parameters.add(forum);
// PageBean pageBean =replyService.getPageBean(pageNum, pageSize, hql, parameters);//分页信息找service查询
// ActionContext.getContext().getValueStack().push(pageBean);//放在栈顶 // 准备分页信息 v3
String hql = "FROM Topic t WHERE t.forum=? ";
List<Object> parameters = new ArrayList<Object>();
parameters.add(forum); if (viewType == 1) { // 1 表示只看精华帖
hql += " AND t.type=? ";
parameters.add(Topic.TYPE_BEST);
} if (orderBy == 1) { // 1 表示只按最后更新时间排序
hql += " ORDER BY t.lastUpdateTime " + (asc ? "ASC" : "DESC");
} else if (orderBy == 2) { // 2 表示只按主题发表时间排序
hql += " ORDER BY t.postTime " + (asc ? "ASC" : "DESC");
} else if (orderBy == 3) { // 3 表示只按回复数量排序
hql += " ORDER BY t.replyCount " + (asc ? "ASC" : "DESC");
} else { // 0 表示默认排序(所有置顶帖在前面,并按最后更新时间降序排列)
hql += " ORDER BY (CASE t.type WHEN 2 THEN 2 ELSE 0 END) DESC, t.lastUpdateTime DESC";
} PageBean pageBean =replyService.getPageBean(pageNum, pageSize, hql, parameters);//分页信息找service查询
ActionContext.getContext().getValueStack().push(pageBean);//放在栈顶 return "show";
}
public int getViewType() {
return viewType;
}
public void setViewType(int viewType) {
this.viewType = viewType;
}
public int getOrderBy() {
return orderBy;
}
public void setOrderBy(int orderBy) {
this.orderBy = orderBy;
}
public boolean isAsc() {
return asc;
}
public void setAsc(boolean asc) {
this.asc = asc;
}
}

forumAction>>show.jsp

分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件的更多相关文章

  1. 系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层

    系统管理模块_部门管理_改进1:抽取添加与修改JSP页面中的公共代码 commons.jspf <%@ page language="java" import="j ...

  2. 在jsp页面中设置了远程验证,在初始化时必须预先调用一次。

    参考链接:http://code.taobao.org/p/sztaotao/diff/5/trunk/code/src/main/webapp/webpage/modules/sys/roleFor ...

  3. JSTL标签急速秒杀jsp页面中的java代码(一)---Core标签库

    JSTL标签简介 ===================================================================== JSTL的全称是JavaServer Pa ...

  4. JSP页面中的指令标识

    JSP页面中的指令标识 制作人:全心全意 指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中.也就是说,指令标识对于客户端浏览器是不可见的 ...

  5. jsp页面中引用其他页面的方法

    初看这个标题....大家的感觉一定是好2啊.....博主一定要说jsp的动态引用(jsp:include)和静态引用(@include)了.介绍这两者区别的文章已经烂大街了..一搜一大把..博主竟然还 ...

  6. jsp页面中jstl标签详解

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

  7. jsp页面中创建方法

    在JSP页面中是用 <%! void function(){ } %> 这种方式可以定义函数. 如果只使用 <% //todo %> 代码块中的代码在编译时将会都被加到 sev ...

  8. JSP页面中的pageEncoding和contentType两种属性

    关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容 ...

  9. jsp页面中的java代码

    jsp页面中的java代码 1.jsp表达式  <%= ....%>  只能放置一个变量常量 2. jsp小脚本 <% .... %>  java语句,可以插入一些语句 3. ...

随机推荐

  1. PHP-静态方法(static)继承等分析

    <?php class A { const CONST_NAME = 'A'; public static $static_name = 'A'; public static $static_n ...

  2. NowCoderG:最大平方数

    求不大于 N 的最大的平方数: 思路:输入数的平方根向下取整的数的平方即为所求. Python代码: import sys import math num=int(sys.stdin.readline ...

  3. Sphinx高亮显示关键字

    选取程序中使用的一部分代码: public function buildExcerptRows($ids) { $options = array( 'before_match' => '< ...

  4. websphere设置jvm参数

    http://www.quiee.com.cn/archives/592/ websphere 选择服务器-> 应用程序服务器-> Server1-> 进程定义->Java 虚 ...

  5. ceph之查看osd上pg的分布

    一.概述 osd上pg的分布决定了数据分布的均匀与否,所以能直观的看到pg到osd的上分布是很有必要的: ceph只身提供了相关的命令: #ceph pg ls-by-osd.{osd_id} #fo ...

  6. Android 5.0最应该实现的8个期望

    毫无疑问,Android 5 将是令人兴奋的操作系统,因为 Android4.0 至 4.4 版本之间并没有显著的差异,显然谷歌会在 5.0 版本中进行一些较大幅度的革新.那么,代号为“柠檬芝士蛋糕” ...

  7. IE提示console未定义问题解决

    在页面加入如下代码: if (!window.console || !console.firebug){    var names = ["log", "debug&qu ...

  8. IT行业面试指导 计算机行业面试技巧 面试技巧

    简历篇 简历是你的的第一张脸,简历写的是否合理,是否吸引人,将决定你能否赢得宝贵的面试机会,迈出第一步! l  姓名,性别,学历,居住地,工作年限,邮箱,手机号 l  填“现居住地”,不要填成“户籍所 ...

  9. Qt 2D绘图高级篇

    1.拖动模式 在QGraphicView中提供了三种拖动模式,分别是: QGraphicsView::NoDrag :忽略鼠标事件,不可以拖动. QGraphicsView::ScrollHandDr ...

  10. atitit.thumb生成高质量缩略图 php .net c++ java

    atitit.java thumb生成高质量缩略图 php .net c++ 1. 图像缩放(image scaling)---平滑度(smoothness)和清晰度(sharpness) 1 2.  ...