设为首页 - 加入收藏 站长在线 - 常用服务器软件 - 在线站长工具 - 在线伪原创工具
您的当前位置:主页 > 网络教程 > JSP教程 > 正文

jsp怎样实现点击图片就能浏览上一张,下一张图片

来源:ZzWww 编辑:ZzWww 时间:2013-04-05

满意答案

这个就和点击链接是一个道理的 我写过是实现点击链接的,我想道理是一样的

上一篇,下一篇,点击相应的链接就转到新的文章,这个其实也不太难,我用的是个笨方法,仅供参考:

思路是得到当前的信息时就得到下一篇的信息;

===========action中==========

public ActionForward toViewDiary(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String dId=request.getParameter("diaryId");
String UId=request.getParameter("userId"); //被访问人的Id
Account comUser=null;
if(UId!=null) {
int id=Integer.parseInt(UId);
comUser=this.accountBiz.GetUserById(id); //被访问人的信息
}else {

}
String page=request.getParameter("page"); //分页(我这用到了,你们没用的话就不用写)
if(page==null) {
page="1";
}
pageInfo.setPageIndex(Integer.parseInt(page));
pageInfo.setPageSize(1);
try {
Account account=(Account)request.getSession().getAttribute("user");
int clickNum=0; //点击数
if(account!=null) {
//根据ID得到日志信息
Diary diary=this.diaryBiz.getDiaryById(Integer.parseInt(dId));
//得到所有的日志信息
List diaryList=this.diaryBiz.GetDiaryListByUserId(comUser.getId(), null);
if(account.getId().equals(comUser.getId())) {
clickNum=diary.getCheckNum(); //得到当前点击数
}else {
clickNum=diary.getCheckNum(); //得到当前点击数
clickNum++; //点击数+1
diary.setCheckNum(clickNum);
this.diaryBiz.updateDiary(diary); //更新日志信息
}
//根据Id得到此日志的所有回复
pageInfo.setPageSize(5);
List rdiaryList=this.rdiaryBiz.getRRiaryById(Integer.parseInt(dId), pageInfo);(第二个参数是分页的信息,请参考ssh分页文章)
request.setAttribute("rdiaryList", rdiaryList);
request.setAttribute("diary", diary);
request.setAttribute("diaryList", diaryList);
request.setAttribute("comUser", comUser);
}else {
response.sendRedirect("/hiWithMe/init.do?method=doInit");
return null;
}
}catch(Exception ex) {

}
return mapping.findForward("detal");
}

=============页面中用到小脚本====================

<%

Account comUser=(Account)request.getAttribute("comUser"); //存放被访问人的信息
Account account=(Account)request.getSession().getAttribute("user"); //当前登录用户
List diaryList=(List)request.getAttribute("diaryList"); //得到所有的文章信息
Diary diaryNow=(Diary)request.getAttribute("diary"); //得到当前显示的文章
String msg="";
Diary diaryUp=new Diary(); //上一篇文章信息
Diary diaryDown=new Diary(); //下一篇文章信息
int downId=0;
if(diaryList!=null) {
for(int i=0;i<diaryList.size();i++) {
Diary diaryInfo=(Diary)diaryList.get(i);
if(diaryInfo.getId().equals(diaryNow.getId())) {
if(i-1<0) { //判断是否是第一篇
msg="当前就是第一篇";
diaryUp=diaryNow;
}else {
diaryUp=(Diary)diaryList.get(i-1); //不是的话就得到上一篇的信息
}
if(i+1>=diaryList.size()) {
msg="当前就是最后一篇";
diaryDown=diaryNow;

}else{
downId=i+1;
System.out.println(downId+"================================="); //理由同上
diaryDown=(Diary)diaryList.get(downId);
}

}
}
}else {}
%>
<a href="<%=basePath %>blog.do?method=toViewDiary&diaryId=<%=diaryUp.getId() %>&userId=<%=comUser.getId() %>" class="more" onclick="return checkDiary(<%=diaryUp %>,<%=msg %>);">上一篇</a> - 
<a href="<%=basePath %>blog.do?method=toViewDiary&diaryId=<%=diaryDown.getId() %>&userId=<%=comUser.getId() %>" class="more" onclick="checkDiary(<%=diaryDown %>,<%=msg %>);">下一篇</a>

+1 已赞过

满意答案

这是把数据库里的数据读出来,按ID排好顺序(或按上传时间,随便),然后把它们存到一个数组或一个对像里。

当点上一张或下一张的时候,无非就是找到当前index=1 或都 -1 的图片的地址而已。。。

补充:

点左边就上一张,点右边就下一张,是用浮动层在图片上做了2个各占一半的大透明层,里面放了2个超链接。或者是JS写的onclick事件。

前一个简单些。

追问:

做透明层我不懂做,是不是用css做

回答:

透明层就是把那个图片所在的DIV层的CSS设置为display:positive;

然后再在里面写2个div层,CSS都是display:absolute;

宽度为外面图片的一半,高度和图片相等,然后用top:0; left:0; 和 top:0; right:0;

来定位它们。

最后再在div层里写一个a标签,把它的CSS定成:

display:block;

width为图片一半,height和图片相等。

就OK了。

+1 已赞过


TAG标签:腾讯 问答系统 提问 回答 知识搜索 问问 搜搜 jsp怎样

网友评论:

文章右边250
Top