Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在JSP中浏览多个页面_Html_Jsp_Servlets_Model View Controller_Jstl - Fatal编程技术网

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如果你是从数据库中获取的,你不需要加载整个内容。使用SQL
LIMIT
()选择开始索引和元素数。啊哈,我现在明白了。谢谢你的解释。@Wlad不客气。您可能对firebug和stackoverflow的分页技术感兴趣。转到“问题”页面,浏览底部的页面链接,查看请求参数。是的,Firebug看起来是非常有用的工具。但是,目前我正在使用Chrome,Chrome有自己的页面检查工具:工具->开发者工具。我相信它提供了类似Firefox中Firebug的功能。