这是我的Action代码:
public ActionForward html(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException {
ServletContext context = this.getServlet().getServletConfig().getServletContext();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Connection connection;
Statement statement;
ResultSet resultSet;
try{
int pageIndex = 0;
File reportFile = new File(context.getRealPath("/reports/staffer.jasper"));
JasperReport jasperReport= (JasperReport)JRLoader.loadObject(reportFile.getPath());
StringBuffer sb=new StringBuffer();
sb.append(" select * from staffer");
Class.forName("net.sourceforge.jtds.jdbc.Driver");
connection=DriverManager.getConnection("jdbc:jtds:sqlserver://localhost/yq", "sa", "123");
statement=connection.createStatement();
resultSet=statement.executeQuery(sb.toString());
JRResultSetDataSource resultSetDataSourde=new JRResultSetDataSource(resultSet);
JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,new HashMap(),resultSetDataSourde);
JRHtmlExporter exporter = new JRHtmlExporter();
StringBuffer sbuffer = new StringBuffer();
request.setAttribute("sb", sbuffer);
exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, sbuffer);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(pageIndex));
exporter.exportReport();
}catch(Exception e){
e.printStackTrace();
}
return mapping.findForward("html");
}我显示转到另外view.jsp页面上输出:
<%=request.getAttribute("sb").toString()%>,当然页面上只是显示第一页。那我现在怎么在view.jsp进行分页,也就是说可以点下一页进行预览,请高手指点。
public ActionForward html(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException {
ServletContext context = this.getServlet().getServletConfig().getServletContext();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Connection connection;
Statement statement;
ResultSet resultSet;
try{
int pageIndex = 0;
File reportFile = new File(context.getRealPath("/reports/staffer.jasper"));
JasperReport jasperReport= (JasperReport)JRLoader.loadObject(reportFile.getPath());
StringBuffer sb=new StringBuffer();
sb.append(" select * from staffer");
Class.forName("net.sourceforge.jtds.jdbc.Driver");
connection=DriverManager.getConnection("jdbc:jtds:sqlserver://localhost/yq", "sa", "123");
statement=connection.createStatement();
resultSet=statement.executeQuery(sb.toString());
JRResultSetDataSource resultSetDataSourde=new JRResultSetDataSource(resultSet);
JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,new HashMap(),resultSetDataSourde);
JRHtmlExporter exporter = new JRHtmlExporter();
StringBuffer sbuffer = new StringBuffer();
request.setAttribute("sb", sbuffer);
exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, sbuffer);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(pageIndex));
exporter.exportReport();
}catch(Exception e){
e.printStackTrace();
}
return mapping.findForward("html");
}我显示转到另外view.jsp页面上输出:
<%=request.getAttribute("sb").toString()%>,当然页面上只是显示第一页。那我现在怎么在view.jsp进行分页,也就是说可以点下一页进行预览,请高手指点。
解决方案 »
- contextConfigLocation,ContextLoaderListener,DispatcherServlet这仨货神马关系?
- axis客户端调用cxf是无法传递参数
- JPA 查询语句
- 想在java里调用pb的报表,请问大家有什么好方法?
- web.xml中过滤器(不难的,但是我不懂啊。,救救我吧)
- 求javaweb 包的 帮助文档
- 配置文件
- 请问高人:如何在jsp中做到调用javabean里面取得结果集的函数,以后回到该页面时候只取得结果集,不在执行sql语句。
- 开发一套一般oa系统用java大约需要多长时间大约费用是多少
- 如果微软继续跟进Java,他们迟早会把它消灭掉,而Java其实不过是Windows和Internet之战的牺牲品
- 中文字符串下载成txt文本,经过编码转换是乱码??(急)
- 新手上路 JSP 问题请教!
给你个分页bean研究一下就ok了
import java.io.*;public class PageBean implements Serializable
{
private int currentPage;
private int totalItem;
private int everyPage;
//设置当前页
public void setCurrentPage(int currentPage)
{
int totalPage = this.getTotalPage();
if(currentPage <= 0)
{
this.currentPage = 1;
} else if(currentPage >= totalPage)
{
this.currentPage = totalPage ;
}
this.currentPage = currentPage;
}
//取得当前页
public int getCurrentPage()
{
if(totalItem <= 0)
{
return 1;
}
return this.currentPage;
}
//取得当前页码
public int getCurrentPageNum() {
if(totalItem <= 0) {
return 1;
}
return this.currentPage ;
}
public void setEveryPage(int everyPage)
{
this.everyPage = everyPage;
}
public int getEveryPage()
{
return this.everyPage;
}
public int getTotalPage()
{ if(totalItem % everyPage == 0) {
return totalItem / everyPage;
} else {
return totalItem / everyPage + 1;
}
}
public void setTotalItem(int totalItem) {
this.totalItem = totalItem;
}
public int getTotalItem() {
return this.totalItem;
}
public int getBeginPosition()
{
return((currentPage-1)*everyPage);
}
public int getEndPosition() {
return currentPage * everyPage ;
}
public boolean isFirstPage() {
return (currentPage <= 1);
}
public boolean isLastPage() {
int totalPage;
totalPage = getTotalPage();
if(currentPage >= totalPage) {
return true;
} else {
return false;
}
}
public boolean isEmptyItem() {
return (totalItem <= 0);
}
}必须知道有多少数据条数
然后set进去生成分页需要的数据
传的页面上处理一下就行了
很简单的