jsp新闻的上一篇和下一篇显示问题

94139314 2014-11-18 10:45:30
在网上找了一下这方面的代码,但有一个问题没解决,就是如果没有上一篇文章了,就会什么都没显示出来。
package JavaBeans;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;

public class PagingNews extends DataDao {

public News findByIdNews(int news_id){
News news = null;
String sql = "select * from essay where id=?";
Connection conn = DataDao.getConn();
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, news_id);
ResultSet rs = ps.executeQuery();
if(rs.next()){
news = new News();
news.setNews_id(rs.getInt(1)); //将数据库表相应列数据 setters到bean内
news.setNews_title(rs.getString(3));
news.setNews_mark(rs.getString(6));
}
rs.close();
ps.close();
} catch (Exception e) {
e.printStackTrace();
} finally{
this.closeConn(conn);
}
return news;
}
/**
* 根据新闻编号,得到下一遍的新闻信息
* @param news_id 新闻编号
* @return news 新闻信息实体bean对象
* */
public News findNextNews(int news_id){
News news = null;
String sql = "select top 1 * from essay where id>?";
Connection conn = DataDao.getConn();
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, news_id);
ResultSet rs = ps.executeQuery();
if(rs.next()){
news = new News();
news.setNews_id(rs.getInt(1));
news.setNews_title(rs.getString(3));
news.setNews_mark(rs.getString(6));
}
rs.close();
ps.close();
} catch (Exception e) {
e.printStackTrace();
} finally{
this.closeConn(conn);
}
return news;
}

/**
* 根据新闻编号,得到上一遍的新闻信息
* @param news_id 新闻编号
* @return news 新闻信息实体bean对象
* */
public News findPreNews(int news_id){
News news = null;
/*提示:
* 如果你不是用access数据库,order by news_id desc可取消掉,则rs.next()需改成rs.previous()
* 改成rs.previous()报异常时则需要添加相应游标
* 原因:因为access数据库不支持rs.previous()
* */
String sql = "select top 1 * from essay where id<? order by id desc";

Connection conn = DataDao.getConn();
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ps.setInt(1, news_id);
ResultSet rs = ps.executeQuery();
if(rs.next()){
news = new News();
news.setNews_id(rs.getInt("id"));
news.setNews_title(rs.getString("title"));
news.setNews_mark(rs.getString("emark"));
}
rs.close();
ps.close();


} catch (Exception e) {
e.printStackTrace();
} finally{
this.closeConn(conn);
}
return news;
}
}


jsp代码:

<%
/*获取请求参数 新闻编号*/

int news_id = Integer.parseInt(tid); //类型转换

PagingNews pagin = new PagingNews(); //实例化PagingNews类
News news = pagin.findByIdNews(news_id); //得到新闻信息

News next1 = pagin.findNextNews(news_id); //获取下一篇新闻信息
News pre = pagin.findPreNews(news_id); //获取上一篇新闻信息
%>
<p class="down">
上一篇:

<%
if (pre==null) {
out.print("没有上一篇了");
} else {
out.print("<a href=news2.jsp?id="+pre.getNews_id()+"&lx="+pre.getNews_mark()+">" + pre.getNews_title() + "</a>");
}
%>
<br />
<br />
下一篇:
<%
if (next1 == null) {
out.print("没有下一篇了");
} else {
out.print("<a href=news2.jsp?id="+next1.getNews_id()+"&lx="+pre.getNews_mark()+">" + next1.getNews_title() + "</a>");
}
%>
</p>


就是没有上一篇了就没有显示出来,求大神呀
...全文
396 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
94139314 2014-11-26
  • 打赏
  • 举报
回复
求大神呀,都一个星期多了,还没解决,大神,快来呀
94139314 2014-11-19
  • 打赏
  • 举报
回复
引用 3 楼 scarqiang 的回复:
if (pre==null) 或者pre=="" 。这个你没判断完全啊,有可能是空,不一定是null
pre不是字符串,pre==""会报错
scarqiang 2014-11-19
  • 打赏
  • 举报
回复
if (pre==null) 或者pre=="" 。这个你没判断完全啊,有可能是空,不一定是null
94139314 2014-11-19
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
你这个不是有输出?
就是如果没上一篇了,他会没显示出out.print("没有上一篇了"); 这怎么解?
slwsss 2014-11-19
  • 打赏
  • 举报
回复
你这个不是有输出?

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧