分页技巧_改进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. ...
随机推荐
- iOS官方文档阅读 基本格式指北
一些关键词作用 NS_AVAILABLE 表示可用 如 NS_AVAILABLE(NA, 6_0);例如上面这句就是表示 该方法在6.0系统后可用 如果在6.0以下的系统用不了的 或者直接崩溃. NS ...
- Python -- 函数对象
转自:http://www.cnblogs.com/vamei/archive/2012/07/10/2582772.html 秉承着一切皆对象的理念,我们再次回头来看函数(function).函数也 ...
- Scrapy见面第五天
这算是我第一次使用框架吧,说来羞愧. 此前用Request带上cookie实现.(略微)完好了QQ空间的爬虫(传送门),接下来想实现分布式去爬. 事实上仅仅要能实现待爬QQ队列的共享,分布式的主要问题 ...
- ubuntu下载软件安装包
apt-get -d download xxx ubuntu下载软件安装包命令.仅仅下载deb格式的安装包,不安装. xxx是待下载的安装包.
- 什么是Coded UI
什么是Coded UI Coded UI Test是Visual Studio 2010对于Testing Project(测试工程)提供的关于UI自动化测试的框架,支持Win32,Web,WPF等U ...
- Object-C中的数字对象
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...
- C#之用XmlWriter保存XML数据
http://book.51cto.com/art/201012/241202.htm https://blog.csdn.net/hongkaihua1987/article/details/790 ...
- python 使用urllib.urlopen超时问题的解决方法
准备写一个python脚本抓取网页数据,前面抓了几个都没有什么问题,但总会抓取不完整,在中间过程中没有反应,发现执行urlopen的地方总是提示超时,百度了一下,因为我使用的是urllib不是urll ...
- CSS3 图片旋转
.nav_all { position:relative; z-index:; width:172px; display:inline; ; } .nav_all b { display:block; ...
- jfinal中Interceptor的使用
一.拦截器是用于对action请求的拦截处理,发生在进入action方法体之前的拦截操作,这样方便了对请求实例做一些文章. 二.自定义.系统已有拦截器都需要实现Interceptor接口,这样才能 ...