Java-Bean中的JSF CSV下载
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java-Bean中的JSF CSV下载,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2232字,纯文字阅读大概需要4分钟。
内容图文
![Java-Bean中的JSF CSV下载](/upload/InfoBanner/zyjiaocheng/690/091f96d0e81b437d82d5f3c4a8b15b52.jpg)
我正在尝试以与此处相同的方式进行csv下载:
How to provide a file download from a JSF backing bean?
我的响应不断在output.write()行上引发nullPointerException.该bean属于请求范围.关于空指针有什么想法吗?
try
{
//submitForm();
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse();
response.reset();
response.setContentType("text/csv");
//response.setContentLength(contentLength);
response.setHeader ( "Content-disposition", "attachment; filename=\"Reporting-" +
new Date().getTime() + ".csv\"" );
OutputStream output = response.getOutputStream();
String s = "\"Project #\",\"Project Name\",\"Product Feature(s)\",";
s+="\"Project Status\",";
s+="\"Install Type\",";
s+="\"Beta Test\",\"Beta Test New/Updated\",";
s+="\"Production\",\"Production New/Updated\",";
s+="\n";
InputStream is = new ByteArrayInputStream( s.getBytes("UTF-8") );
int nextChar;
while ((nextChar = is.read()) != -1)
{
output.write(nextChar);
}
output.close();
}
catch ( IOException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
解决方法:
3件事跳到这里
>无法在FacesContext上调用responseComplete()几乎意味着JSF将继续处理请求,并且您不会影响结果.
>不需要reset()调用.
>输出流应为ServletOutputStream类型
请尝试以下代码段
try
{
//submitForm();
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse();
response.setContentType("text/csv");
fc.responseComplete();
//response.setContentLength(contentLength);
response.setHeader ( "Content-disposition", "attachment; filename=\"Reporting-" +
new Date().getTime() + ".csv\"" );
ServletOutputStream output = response.getOutputStream();
String s = "\"Project #\",\"Project Name\",\"Product Feature(s)\",";
s+="\"Project Status\",";
s+="\"Install Type\",";
s+="\"Beta Test\",\"Beta Test New/Updated\",";
s+="\"Production\",\"Production New/Updated\",";
s+="\n";
InputStream is = new ByteArrayInputStream( s.getBytes("UTF-8") );
int nextChar;
while ((nextChar = is.read()) != -1)
{
output.write(nextChar);
}
output.flush();
output.close();
}
catch ( IOException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
此外,您只需调用sos.println(s),而无需在此完成所有工作
内容总结
以上是互联网集市为您收集整理的Java-Bean中的JSF CSV下载全部内容,希望文章能够帮你解决Java-Bean中的JSF CSV下载所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。