搜索分页过不去

两个对文章列表的分页,一个没有搜索关键词,一个是根据关键词搜索得到列表。模板没有用freemarker,用的jsp。没有搜索的在jsp中用的链接是href="/admin/article/${i }",其中${i }是页码,在ArticleController中对应的方法是index();用搜索的在jsp中用的链接是href="/admin/article/search/${i }",其中search是ArticleController定义的方法search()

没有搜索的每页显示正常,有搜索的第一页显示,但点击第2页就出现/admin/article/search.jsp找不到的错误。但这里的search不是search.jsp而是controller中定义的search()。

即便单独建一个SearchController,定义index()方法,配好路由。但用/admin/search却出现index.jsp找不到的错误。

如果能给一个jsp中关键词搜索分页的demo就好。

评论区

getthem

2016-09-15 16:48

search代码:
public void search(){
String keyword=getPara("searchtext");//接收关键词文本输入文本
String keyword2=getSessionAttr("keyword2");//接收session供第2页以上的页面使用
Page articlepage;
if (keyword!=null){
if (keyword2!=null){
if (keyword!=keyword2){
keyword2=keyword;
}
articlepage=Article.dao.paginate(getParaToInt(0, 1), 20, "select *", " from article where Title like '%"+keyword2+"%' order by ID DESC");
}else{
articlepage=Article.dao.paginate(getParaToInt(0, 1), 20, "select *", " from article where Title like '%"+keyword+"%' order by ID DESC");
setSessionAttr("keyword2", keyword);
}
List articlelist=articlepage.getList();
int begin = 0;
int end = 0;
//最多显示当前页面的前后20个页码
if (articlepage.getPageNumber() - 20 < 1) {
begin = 1;
} else {
begin = articlepage.getPageNumber() - 20;
}
if (articlepage.getTotalPage() < articlepage.getPageNumber() + 20) {
end = articlepage.getTotalPage();
} else {
end = articlepage.getPageNumber() + 20;
}
setAttr("begin", begin);
setAttr("end", end);
setAttr("articles", articlelist);
setAttr("pages", articlepage);
render("article_search_list.jsp");
}
}

JFinal

2016-09-15 17:59

search() 方法中是在 render("article_search_list.jsp"),而提示却是 /admin/article/search.jsp 页面找不到,很明显是该 render 方法未被执行,进而推断出 search() 方法未被执行,再进而推断出是有拦截器未让该请求前行至 search() 方法

看一下控制台输出的 JFinal action report 就全明白了

热门反馈

扫码入社