jsp如何使用Java以CSV格式导出数据?
原因可能是缺乏java方面的知识:(,所以我要问这个问题
在这段代码中,我获得了动态值(来自jsp页面):
<form action="">
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/apps","root","root");
Statement stmt = con.createStatement();
String sql = "select * from info;";
ResultSet rs = stmt.executeQuery(sql);
System.out.println(sql);
System.out.println("hi Tirtha");
%>
<center>
<h3>Information of User's</h3>
<table cellpadding="4" cellspacing="2" border="1" bgcolor="">
<tr>
<th>User Name</th>
<th>Email Id</th>
</tr>
<tr>
<%while(rs.next()){%>
<td><input type="text" name="name" value="<%= rs.getString(1)%>" readonly="readonly">
<td><input type="text" name="email" value="<%= rs.getString(2)%>" readonly="readonly">
</tr>
<%}%>
</table>
</center>
</form>
现在我想将此数据保存在csv文件中(其中包含导出选项)
如有任何意见,将不胜感激
# 1 楼答案
下面是一个可用于导出到CSV的类:
以MVC的方式工作
以下是您的代码应该如何编写:
假设你有一门课叫用户。java中有一个名为get all users的静态函数
然后假设您有一个名为UsersServlet的servlet,它可以获取以下用户:
例如,在jsp中,您将有一个简单的锚定标记来调用servlet(servlet调用User.java,获取数据,将它们形成CSV,然后将其输出到浏览器…)。像这样的方法会奏效:
但请注意,您必须使用web将servlet链接到url。xml:
编辑:写入磁盘而不是发送到浏览器
# 2 楼答案
在JSP中嵌入代码通常是不好的做法,最好使用servlet、java类或Spring、JSF、Struts等web框架
然而,使用上面的例子。最简单的方法是创建另一个JSP页面,如下所示:
这会将内容类型设置为文本文件,以便浏览器可以正确显示它。然后,它遍历您的记录集,输出一行,其中两个字段用引号括起来,每行以
\n
换行符结尾。然后,在原来的页面上,您只需要有一个指向这个新JSP页面的链接就可以下载CSV或者,可以使用OpenCSV这样的现有库。这将考虑到更复杂的需求,还可以通过自动处理逃跑或特殊情况来避免麻烦