我的主要功能就是在页面上点击按钮后会出现一个下载框。但当我保存(这个功能成功的)后,分页(下页、上页),保存按钮都失效了?为什么?但是我按在线打开的话就一切正常,为什么啊?我搞了很长时间不知道,拜托大家帮我看看。小女刚刚步入IT业,备感压力啊,不想失业啊!!!在JSP页面中我点击一个按牛后,会激活下面这个函数
function download_file()
{
var doc = document.forms[0];
doc.action = "/DownLoad.do";
<%
DownLoad df=new DownLoad();
df.WriteFiles(request);
%>
doc.submit();
return true;
}函数中调用的JAVA文件如下package com.skyon.fcard.report;import java.io.*;
import java.net.URL;
import java.util.Date;
import java.util.Random;import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.skyon.core.util.PagedList;
import com.skyon.dbschema.TransList;
import com.skyon.fcard.util.*;
import com.skyon.fcard.bo.*;import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;public class DownLoad extends Action {
String merID ;
private Logger logger = Logger.getLogger("download");
/**
* 报表下载
* 从界面获取输入元素,查询数据,返回结果
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
* @throws Exception
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
merID = request.getParameter("merID");
String path= request.getRealPath(".");
String fileName = merID+".txt";
String path1 =path+"\\"+ merID+".txt";
//String realPath = this.getServletContext().getRealPath(path1);
File f = new File(path1);
if (!f.exists()) {
response.sendError(404, "File not found!");
}
fileName = new String(fileName.getBytes("GB2312"), "ISO8859_1");
boolean isOnLine = false;
response.reset();
if (isOnLine) { //在线打开方式
URL u = new URL("file:///" + path1);
response.setContentType(u.openConnection().getContentType());
response.setHeader("Content-Disposition",
"inline; filename=" + f.getName());
} else { //纯下载方式
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition",
"attachment; filename=" + fileName);
}
byte[] buf = new byte[1024];
int len = 0;
BufferedInputStream br = null;
OutputStream out = null;
try {
br = new BufferedInputStream(new FileInputStream(f));
out = response.getOutputStream();
while ((len = br.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.flush();
} catch (Exception e) {
//e.printStackTrace();
} finally {
if (br != null) {
br.close();
br = null;
}
if (out != null) {
out.close();
out = null;
}
}
return (new ActionForward(mapping.getInput()));
//return null;
}
//写文件
public void WriteFiles(HttpServletRequest request) throws Exception {
merID = request.getParameter("merID");
String path= request.getRealPath(".");
FileWriter fw=new FileWriter(path + "\\"+merID+".txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write(" 卡号 卡类型 交易日期 交易时间 交易金额 交易币种 ECI标志 商户订单号 系统订单号 摘要信息 状态");
bw.newLine();
PagedList pagedList=(PagedList)request.getSession().getAttribute("list");
logger.info("pagedList.size =" + pagedList.size());
for(int i = 0;i < pagedList.size();i++){
if (pagedList.size() > 0 ){
TransList transList = (TransList) pagedList.get(0);
String tag=new String();
String curr=new String();
if(transList.getOrgType().toString().equals("1"))
{
tag="visa";
}
if(transList.getOrgType().toString().equals("2"))
{
tag="Master";
}
if(transList.getOrgType().toString().equals("3"))
{
tag="JCB";
}
if(transList.getTransCurrency().equals("156"))
{
curr="人民币";
}
bw.write("************"+transList.getCardNo().substring(12,16)+" "+tag+" "+Util.getDateTimeString(transList.getTransDate(), "yyyy-MM-dd")+
" "+Util.getDateTimeString(transList.getTransTime(), "HH:mm:ss")+" "+
" "+transList.getTransAmt()+" "+curr+" "+transList.getEci().trim()+" "+
transList.getPosSeq()+" "+transList.getEbillNo().trim()+" "+transList.getDescription()+" "+("00".equals(transList.getReturnCode().trim())?"成功":"失败"));
bw.newLine();
}
}
bw.flush();
fw.close();
}
}
function download_file()
{
var doc = document.forms[0];
doc.action = "/DownLoad.do";
<%
DownLoad df=new DownLoad();
df.WriteFiles(request);
%>
doc.submit();
return true;
}函数中调用的JAVA文件如下package com.skyon.fcard.report;import java.io.*;
import java.net.URL;
import java.util.Date;
import java.util.Random;import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.skyon.core.util.PagedList;
import com.skyon.dbschema.TransList;
import com.skyon.fcard.util.*;
import com.skyon.fcard.bo.*;import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;public class DownLoad extends Action {
String merID ;
private Logger logger = Logger.getLogger("download");
/**
* 报表下载
* 从界面获取输入元素,查询数据,返回结果
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
* @throws Exception
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
merID = request.getParameter("merID");
String path= request.getRealPath(".");
String fileName = merID+".txt";
String path1 =path+"\\"+ merID+".txt";
//String realPath = this.getServletContext().getRealPath(path1);
File f = new File(path1);
if (!f.exists()) {
response.sendError(404, "File not found!");
}
fileName = new String(fileName.getBytes("GB2312"), "ISO8859_1");
boolean isOnLine = false;
response.reset();
if (isOnLine) { //在线打开方式
URL u = new URL("file:///" + path1);
response.setContentType(u.openConnection().getContentType());
response.setHeader("Content-Disposition",
"inline; filename=" + f.getName());
} else { //纯下载方式
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition",
"attachment; filename=" + fileName);
}
byte[] buf = new byte[1024];
int len = 0;
BufferedInputStream br = null;
OutputStream out = null;
try {
br = new BufferedInputStream(new FileInputStream(f));
out = response.getOutputStream();
while ((len = br.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.flush();
} catch (Exception e) {
//e.printStackTrace();
} finally {
if (br != null) {
br.close();
br = null;
}
if (out != null) {
out.close();
out = null;
}
}
return (new ActionForward(mapping.getInput()));
//return null;
}
//写文件
public void WriteFiles(HttpServletRequest request) throws Exception {
merID = request.getParameter("merID");
String path= request.getRealPath(".");
FileWriter fw=new FileWriter(path + "\\"+merID+".txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write(" 卡号 卡类型 交易日期 交易时间 交易金额 交易币种 ECI标志 商户订单号 系统订单号 摘要信息 状态");
bw.newLine();
PagedList pagedList=(PagedList)request.getSession().getAttribute("list");
logger.info("pagedList.size =" + pagedList.size());
for(int i = 0;i < pagedList.size();i++){
if (pagedList.size() > 0 ){
TransList transList = (TransList) pagedList.get(0);
String tag=new String();
String curr=new String();
if(transList.getOrgType().toString().equals("1"))
{
tag="visa";
}
if(transList.getOrgType().toString().equals("2"))
{
tag="Master";
}
if(transList.getOrgType().toString().equals("3"))
{
tag="JCB";
}
if(transList.getTransCurrency().equals("156"))
{
curr="人民币";
}
bw.write("************"+transList.getCardNo().substring(12,16)+" "+tag+" "+Util.getDateTimeString(transList.getTransDate(), "yyyy-MM-dd")+
" "+Util.getDateTimeString(transList.getTransTime(), "HH:mm:ss")+" "+
" "+transList.getTransAmt()+" "+curr+" "+transList.getEci().trim()+" "+
transList.getPosSeq()+" "+transList.getEbillNo().trim()+" "+transList.getDescription()+" "+("00".equals(transList.getReturnCode().trim())?"成功":"失败"));
bw.newLine();
}
}
bw.flush();
fw.close();
}
}
解决方案 »
- java 关于递归的一个问题
- swing jlabel上怎么显示不了图片??
- 在线求助
- 关于非阻塞socket CPU占用百分之百的问题
- jlabel不能自定义调整位置
- 定义一个整型集合类integerSet。这种类型的对象可以存储10个20~80之间的整数,即它的内部有一个整型数组存储数据。编程:(1)判断两个integerSet类对象s1和s2是否相等。(2)输出两个集合对象的交集。(3)输出两个集合对象的并集
- 求助 关于字符串的问题
- 这两段程序的有什么区别?
- 关于java中方法的大写和小写问题(问题很简单,这分很容易得)
- 什么基础都没有能不能直接学java?
- ZIP??
- ActionEvent 类里面的哪个方法可以得到对象本身?在线等
{
var doc = document.forms[0];
doc.action = "/DownLoad.do";
<%
DownLoad df=new DownLoad();
df.WriteFiles(request);
%>
doc.submit();
return true;
}//我真给搞胡涂了, 下载功能是写对了.
//js里面初始化struts的Action 给弄胡涂了...客户端其实有的只能点击的是html javascript. 之后会post触发请求, 发送请求包到服务器,
之后服务器反馈,