Html 在JSP中浏览多个页面
Html 在JSP中浏览多个页面,html,jsp,servlets,model-view-controller,jstl,Html,Jsp,Servlets,Model View Controller,Jstl,JSP、servlet、MVC、JSTL 我正在开发一个简单的博客应用程序。我的主页应该显示十篇最新的文章摘要。 在servlet中,我正在创建一个post对象的列表(按date排列),将其附加到request并转发到相应的jsp页面。现在,比如说,这个列表中有56个帖子 我希望我的博客主页显示该列表中的前十篇文章(文章标题、日期和摘要),并在页面底部有导航部分,指向下一页/上一页、第一页/最后一页,并按编号标记页面(博客的通常概念)。例如,如果列表中有56篇文章,那么将有6页(最后一页是6篇文
JSP、servlet、MVC、JSTL
我正在开发一个简单的博客应用程序。我的主页应该显示十篇最新的文章摘要。
在servlet
中,我正在创建一个post对象的列表(按date
排列),将其附加到request
并转发到相应的jsp
页面。现在,比如说,这个列表中有56个帖子
我希望我的博客主页显示该列表中的前十篇文章(文章标题、日期和摘要),并在页面底部有导航部分,指向下一页/上一页、第一页/最后一页,并按编号标记页面(博客的通常概念)。例如,如果列表中有56篇文章,那么将有6页(最后一页是6篇文章)。如果我点击数字2,11-20的帖子摘要就会显示出来
我知道如何使用JSTL
从请求范围的列表中提取/读取数据。但是如何实现导航概念呢 这取决于你如何获得56篇文章的列表。你可以将结果分成一定大小的页面,比如10页
您可以使用请求参数来指示要获取的页面。例如,默认值是
http://yourhost/app/news
这会给你第一页。这相当于
http://yourhost/app/news?page=1
然后您可以指定另一个页面
http://yourhost/app/news?page=2
然后您必须从列表
中获取一个从索引开始的子列表
(pageValue - 1) * sizeOfAPage
只归还那些。这不是在JSP中完成的,而是在实际的Servlet
中,在Servlet中,我使用DAO和JPQL从数据库读取post数据:List posts=postDao.getNewestPosts()
和在Dao
对象中:Query q=em.createNamedQuery(“getNewestPosts”);List resultList=(List)q.getResultList()代码>其中getNewestPosts
是:按p.date DESC从Post p ORDER中选择p
。您建议在servlet中列出子列表吗?(我不确定我是否理解你的想法)@Wlad如果你是从数据库中获取的,你不需要加载整个内容。使用SQLLIMIT
()选择开始索引和元素数。啊哈,我现在明白了。谢谢你的解释。@Wlad不客气。您可能对firebug和stackoverflow的分页技术感兴趣。转到“问题”页面,浏览底部的页面链接,查看请求参数。是的,Firebug看起来是非常有用的工具。但是,目前我正在使用Chrome,Chrome有自己的页面检查工具:工具->开发者工具。我相信它提供了类似Firefox中Firebug的功能。