分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件
分页技巧__改进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页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件的更多相关文章
- 系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层
系统管理模块_部门管理_改进1:抽取添加与修改JSP页面中的公共代码 commons.jspf <%@ page language="java" import="j ...
- 在jsp页面中设置了远程验证,在初始化时必须预先调用一次。
参考链接:http://code.taobao.org/p/sztaotao/diff/5/trunk/code/src/main/webapp/webpage/modules/sys/roleFor ...
- JSTL标签急速秒杀jsp页面中的java代码(一)---Core标签库
JSTL标签简介 ===================================================================== JSTL的全称是JavaServer Pa ...
- JSP页面中的指令标识
JSP页面中的指令标识 制作人:全心全意 指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中.也就是说,指令标识对于客户端浏览器是不可见的 ...
- jsp页面中引用其他页面的方法
初看这个标题....大家的感觉一定是好2啊.....博主一定要说jsp的动态引用(jsp:include)和静态引用(@include)了.介绍这两者区别的文章已经烂大街了..一搜一大把..博主竟然还 ...
- jsp页面中jstl标签详解
JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...
- jsp页面中创建方法
在JSP页面中是用 <%! void function(){ } %> 这种方式可以定义函数. 如果只使用 <% //todo %> 代码块中的代码在编译时将会都被加到 sev ...
- JSP页面中的pageEncoding和contentType两种属性
关于JSP页面中的pageEncoding和contentType两种属性的区别: pageEncoding是jsp文件本身的编码 contentType的charset是指服务器发送给客户端时的内容 ...
- jsp页面中的java代码
jsp页面中的java代码 1.jsp表达式 <%= ....%> 只能放置一个变量常量 2. jsp小脚本 <% .... %> java语句,可以插入一些语句 3. ...
随机推荐
- PHP-WebService中Endpoint、Disco、WSDL都是做什么的?
Endpoint: http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx web服务的URI地址,你访问之后,就会出现web服务的相 ...
- jquery api 常见api 元素操作例子
append_prepend.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ...
- Linux命令-目录处理命令:mv
注意:在linux下面,剪切文件和改名是同一个命令mv,而不是两个独立的命令. mv /tmp/beijing/chaoyangqu /root 移动chaoyangqu目录到root目录下面 mv ...
- Spring boot配置fastjson
pom 文件引用 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson< ...
- chome 离线安装包地址
https://www.chromedownloads.net/chrome32win-stable/ --32bit https://www.chromedownloads.net/chrome6 ...
- 基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件里插入数据到数据表
本文出处:http://blog.csdn.net/u012377333/article/details/47022699 从上面的几篇文章中,能够知道怎样使用Shell创建数据库.使用Shell创建 ...
- django之整体复习
1. 配置文件: media: avatar = models.FileField(upload_to='avatar') sessiongs MEDIA_ROOT=os.path.join(BASE ...
- 详解登录认证及授权--Shiro系列(一)
Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密.Apache Shiro 的首要目标是易于使用和理解.安全有时候是很复杂的,甚至是痛苦的, ...
- Spring Cloud(二):Spring Cloud Eureka Server高可用注册服务中心的配置
前言 Eureka 作为一个云端负载均衡,本身是一个基于REST的服务,在 Spring Cloud 中用于发现和注册服务. 那么当成千上万个微服务注册到Eureka Server中的时候,Eurek ...
- Windows下 Qt 资源文件(.qrc)文件 的 编写与应用
最近遇到一些项目都包含了qrc文件,这个是Qt的资源文件,如果在pro文件中不包含的话,在编译的时候会提示找不到相应资源的错误. 下面说一下手动修改pro和编写qrc文件的方法. 我们直接在命令行下执 ...