如何获得在Java中的表内容值?

在这里,我正在获取servlet中的表内容值(datatoexport)。 但无法进入excel页面。 下载时获取空白页面。 在这里,我正在导出表格内容,在Java中擅长。 您的帮助是高度赞赏。

JSP代码:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Export to Excel - Demo</title> <script src="scripts.js"></script> <script language="javascript"> function exportToExcel() { alert("test"); $("#datatoexport").val( $("<div>").append( $("#exportTableSelector").eq(0).clone() ).html() ); $('#myForm').submit(); } </script> </head> <body> <form id="myForm" action="Sample" method="post"> <table id="exportTableSelector" align="left" border="2"> <thead> <tr bgcolor="lightgreen"> <th>Sr. No.</th> <th>Text Data</th> <th>Number Data</th> </tr> </thead> <tbody> <% for (int i = 0; i < 10; i++) { %> <tr bgcolor="lightblue"> <td align="center"><%=i + 1%></td> <td align="center">This is text data <%=i%></td> <td align="center"><%=i * i%></td> </tr> <% } %> </tbody> </table> <br><br> <p> some text </p> <input type="hidden" name="datatoexport" id="datatoexport" value=""> <input type="hidden" value="excel_download" name="fileName" id="fileName"> <a href="" onclick="exportToExcel();" target="_blank" >Export to Excel</a> </form> </body> </html> 

Servlet的:

 import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Sample */ public class Sample extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Sample() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("Inside doGet"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("Inside doPost"); actionExportToExcel(request, response); } public void actionExportToExcel(HttpServletRequest request, HttpServletResponse response) { String fileName = request.getParameter("fileName"); System.out.println("filename: " +fileName); String datatoexport = request.getParameter("datatoexport"); System.out.println("datatoexport: " +datatoexport); response.setHeader("Content-Type", "application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=test_file.xls"); response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. response.setHeader("Pragma", "no-cache"); // HTTP 1.0. response.setDateHeader("Expires", 0); System.out.println("datatoexport" +datatoexport); } } 

看起来你并没有将任何数据写入响应。 尝试添加

 response.getWriter().write(datatoexport); response.getWriter().flush(); response.getWriter().close(); 

首先从HttpServletResponse获取PrintWriter对象

 PrintWriter out=response.getWriter(); 

然后尝试写任何你想写的东西

 out.println("Whatever you want to write."); 

你可以做到这一点客户端,没有服务器请求做这样的事情:

 function exportToExcel() { var datatoexport = $("<div>").append( $("#exportTableSelector").eq(0).clone() ).html(); window.open('data:vnd.ms-excel;charset=utf-8,' + escape(datatoexport)); }