yeluochengshang
yeluochengshang
2013-01-24 16:52
浏览 311
已采纳

win7系统报错getOutputStream() has already been called for this response.但是xp系统没问题...

    最近这个问题搞的很头疼,debug过了,action中执行到return "SUCCESS"就报出错误堆栈了,所以应该是jsp文件写的有问题,JSP文件中根本就没有发现getOutputStream(),引入的文件中也没有

    而且更奇怪的是,在我开发的机器上和经理的电脑上都报这个错误,但是在业务的员工的电脑上没出现这个错误,所以推测是代码的某些部分可能存在不兼容的问题,因为我的电脑和经理的电脑是win7的系统,业务的员工的电脑是XP的系统,然后再测试人员的电脑上面进xp的虚拟机也不会报这样的问题

    但是实在看不出来代码存在什么样的问题,百度了N条记录,说是加入2行代码的什么的,但是JSP文件中压根就没有getOutputStream()的语句存在.

     贴上几段代码吧,希望大神能帮忙分析下问题:

     首先是错误堆栈(win7系统):

    

2013-1-24 16:26:02 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
    at org.apache.catalina.connector.Response.getWriter(Response.java:601)
    at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:196)
    at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:157)
    at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
    at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
    at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:326)
    at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:342)
    at org.apache.jsp.jsp.query.integrative.integrative_jsp._jspx_meth_c_005fotherwise_005f1(integrative_jsp.java:1180)
    at org.apache.jsp.jsp.query.integrative.integrative_jsp._jspx_meth_c_005fchoose_005f1(integrative_jsp.java:1119)
    at org.apache.jsp.jsp.query.integrative.integrative_jsp._jspx_meth_c_005fforEach_005f1(integrative_jsp.java:1079)
    at org.apache.jsp.jsp.query.integrative.integrative_jsp._jspService(integrative_jsp.java:362)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:594)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
    at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:141)
    at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
    at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.intercept(ParametersInterceptor.java:161)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.intercept(PrepareInterceptor.java:115)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at com.mangocity.ds.framework.common.controller.ActionInfoInterceptor.intercept(ActionInfoInterceptor.java:55)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:507)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
    at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    at java.lang.Thread.run(Thread.java:619)

 action的代码,请求到的方法:

   

/**
     * 2008-05-06 V2.6.0 SR029 常锐 导出配送单信息
     * 
     * @return
     * @throws Exception
     */
    public String exportExcelDeliveryBill() throws Exception {

        init();
        List<String> unitIdList = new ArrayList<String>();
        List<String> centerIdList = new ArrayList<String>();

        // 判断是否有权限
        if (null != getSystemType().getUnitList() && 0 < getSystemType().getUnitList().size()

        && null != getSystemType().getCenterList() && 0 < getSystemType().getCenterList().size()) {
            for (int i = 0; i < getSystemType().getUnitList().size(); i++) {
                unitIdList.add(((DeliveryUnit) getSystemType().getUnitList().get(i)).getId());
            }
            for (int i = 0; i < getSystemType().getCenterList().size(); i++) {
                centerIdList.add(((DeliveryCenter) getSystemType().getCenterList().get(i)).getId());
            }

            showOther = ((IntegrativeService) getDBService()).getDeliveryBillList(getParams(),
                getPage(), unitIdList, centerIdList);

        }
        showDeliveryList = "yes";

        HttpServletResponse response = super.getHttpServletResponse();
        response.reset();

        response.setContentType("application/vnd.ms-excel");// "application/msexcel"
        response.setCharacterEncoding("GBK");
        response.setHeader("Content-disposition", "attachment;filename=配送单综合查询.xsl");

        OutputStream outStrean = response.getOutputStream();
        // 获取addressList
        List addressList = this.getSystemType().getAreaAddressList();
        HSSFWorkbook demoWorkBook = ((IntegrativeService) getDBService()).exportExcelDeliveryBill(
            getParams(), unitIdList, centerIdList, addressList);
        demoWorkBook.write(outStrean);
        
        outStrean.flush();
        outStrean.close();
        return SUCCESS;
    }

返回到的JSP页面(发出请求的也是这个页面):

   

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page import="org.apache.poi.hssf.usermodel.HSSFWorkbook" %> 
<%@ page import="com.opensymphony.xwork2.util.*" %> 

<%@ include file="/jsp/common/commonheader.jsp"%>
<script src="<%=webPath%>/js/query.js"></script>
<script src="<%=webPath%>/js/operate.js"></script>
<script type="text/javascript">

function exportExcel()
{
    if(checkQueryForm())
    {
        queryform.action ="IntegrativeAction_exportExcelDeliveryBill.do";
        queryform.submit();
    }
    else
    return false;
}


function submitForm(){

    if(checkQueryForm())
    {
    queryform.action ="IntegrativeAction_queryByDeliveryBill.do";
    queryform.submit();
    }
    else
    return false;
}

function checkQueryForm()
{
    if(!validate_form(queryform))return false;
    if(!checkDeliveryDate("billcreatedatebegin","billcreatedateend")){
        return false;
    }
    if(!checkDeliveryDate("deliverydatebegin","deliverydateend")){
        return false;
    }
    if(!checkDeliveryDate("deliveryendbegin","deliveryendend")){
        return false;
    }
    var deliveryCD = queryform.elements["params.deliveryCD"].value;
    var orderCD = queryform.elements["params.orderCD"].value;
    var billcreatedatebegin = document.getElementById("billcreatedatebegin").value;
    var deliverydatebegin = document.getElementById("deliverydatebegin").value;
    var deliveryendbegin = document.getElementById("deliveryendbegin").value;
    var billcreatedateend = document.getElementById("billcreatedateend").value;
    var deliverydateend = document.getElementById("deliverydateend").value;
    var deliveryendend = document.getElementById("deliveryendend").value;
    var deliveryCenter = document.getElementById("deliveryCenter").value;
    if(deliveryCD=="" && orderCD==""){
        if(deliveryCenter==""){
            alert("请使用以下三种方式中的一种进行查询:\n\n1.配送中心+配送单创建时间\n2.配送中心+预约配送时间\n3.配送中心+配送完成时间");
            return false;
        }
        if(billcreatedatebegin=="" && deliverydatebegin=="" && deliveryendbegin=="") 
        {
            alert("请使用以下三种方式中的一种进行查询:\n\n1.配送中心+配送单创建时间或\n2.配送中心+预约配送时间或\n3.配送中心+配送完成时间");
            return false;
        }
    }
    
    if(better_time(billcreatedatebegin,billcreatedateend)>180){
        alert(document.getElementById("billcreatedateend").title+"不应超过六个月!");
        return false;
    }
    if(better_time(deliverydatebegin,deliverydateend)>180){
        alert(document.getElementById("deliverydateend").title+"不应超过六个月!");
        return false;
    }
    if(better_time(deliveryendbegin,deliveryendend)>180){
        alert(document.getElementById("deliveryendend").title+"不应超过六个月!");
        return false;
    }
    
    return true;
}
</script>
</head>

<body>
<form name="queryform" action="IntegrativeAction_queryByDeliveryBill.do"
    method="post">
  <table width="20%" border="0" cellpadding="3" cellspacing="0">
    <tr>
      <td height="18" ><strong><img src="<%=webPath%>/images/arrow.gif" width="9" height="9"> 综合查询</strong></td>
    </tr>
  </table>
  <table width="100%" class="table_bg" align="center" border="0"
    cellpadding="1" cellspacing="0">
    <tr>
      <td><input type="hidden" id="showother" value="${showOther}" />
        <input type="hidden" id="showotherinfo" value="yesorno" />
        <input
            type="hidden" id="showdeliverylist" value="${showDeliveryList }" />
        <input type="hidden" id="urgencyCopy" value="${params.urgency }" />
        
        </td>
    </tr>
    <tr class="search_bg">
      <td height="18"><img src="<%=webPath%>/images/a2.gif" width="9"
            height="9"> <a href="#"
            onClick="javascript:playTableDelivery('deliverTbl')"> <font
            color="#FF9933">配送单信息</font></a></td>
    </tr>
    <tr>
      <td><table width="100%" class="table_bg" align="center" border="0"
            cellpadding="1" cellspacing="0" style="display:block" id="deliverTbl">
          <tr class="search_bg">
            <td width="15%">配送单编号</td>
            <td width="32%"><input type="text" name="params.deliveryCD"
                    value="${params.deliveryCD}" maxlength="50"></td>
            <td width="18%">订单编号</td>
            <td width="35%"><input type="text" name="params.orderCD"
                    value="${params.orderCD}" maxlength="50"></td>
          </tr>
          <tr class="search_bg">
            <td width="15%">订单来源</td>
            <td width="32%"><select id="billResouceOne" name="params.billResouce">
              <option value="">-全部-</option>
                            
               <c:forEach var="billResouce" items="${systemType.billResouce}">
                  <c:choose>
                    <c:when test="${billResouce.value == params.billResouce}">
                      <option value="${billResouce.value}" selected>${billResouce.label}</option>
                    </c:when>
                    <c:otherwise>
                      <option value="${billResouce.value}">${billResouce.label}</option>
                    </c:otherwise>
                  </c:choose>
                </c:forEach>
            </select></td>
            <td>配送方式</td>
            <td><select name="params.deliveryType">
                <option value="">-全部-</option>
                <c:forEach var="deliveryType"
            items="${systemType.deliveryType}">
                  <c:choose>
                    <c:when
                                test="${deliveryType.value == params.deliveryType}">
                      <option value="${deliveryType.value}" selected>${deliveryType.label}</option>
                    </c:when>
                    <c:otherwise>
                      <option value="${deliveryType.value}">${deliveryType.label}</option>
                    </c:otherwise>
                  </c:choose>
                </c:forEach>
              </select>            </td>
          </tr>
          <tr class="search_bg">
            <td>配送中心</td>
            <td><select name="params.centerCD" id="deliveryCenter">
                <option value="">--全部--</option>
              </select></td>
            <td>配送单位</td>
            <td><select name="params.deliveryUnitCD" id="deliveryUnit">
                <option value="">--全部--</option>
              </select></td>
          </tr>
          <tr class="search_bg">
            <td>配送任务状态</td>
            <td><select name="params.deliveryState">
                <option value="">-全部-</option>
                <c:forEach var="deliveryStateTwo"
                        items="${systemType.deliveryState}">
                  <c:choose>
                    <c:when
                                test="${deliveryStateTwo.value == params.deliveryState}">
                      <option value="${deliveryStateTwo.value}" selected>${deliveryStateTwo.label}</option>
                    </c:when>
                    <c:otherwise>
                      <option value="${deliveryStateTwo.value}">${deliveryStateTwo.label}</option>
                    </c:otherwise>
                  </c:choose>
                </c:forEach>
              </select></td>
            <td>收款任务状态</td>
            <td><select name="params.gatheringState">
                <option value="">-全部-</option>
                <c:forEach var="deliveryState" items="${systemType.deliveryState}">
                  <c:choose>
                    <c:when test="${deliveryState.value == params.gatheringState}">
                      <option value="${deliveryState.value}" selected>${deliveryState.label}</option>
                    </c:when>
                    <c:otherwise>
                      <option value="${deliveryState.value}">${deliveryState.label}</option>
                    </c:otherwise>
                  </c:choose>
                </c:forEach>
              </select></td>
          </tr>
          <tr class="search_bg">
            <td>配送员姓名</td>
            <td><input type="text" name="params.delivererName"
                    value="${params.delivererName}" maxlength="50"></td>
            <td>收件人</td>
            <td><input type="text" name="params.addresseeName"
                    value="${params.addresseeName}" maxlength="50"></td>
          </tr>
          <tr class="search_bg">
            <td>配送接票时间</td>
            <td><input type="text" id="deliveryconnect"
                    name="params.deliveryConnect" value="${params.deliveryConnect }"
                    size="15">
              <a
                    href="javascript:showCalendar('deliveryconnect',false,'deliveryconnect')"> <img src="<%=webPath%>/images/i_date.gif" width="29" height="22"
                    align="middle" border=0></a></td>
            <td>收件人联系电话</td>
            <td><input type="text" name="params.addresseePhone"
                    value="${params.addresseePhone}" maxlength="50"></td>
          </tr>
          <tr class="search_bg">
            <td>会员编号</td>
            <td><input type="text" name="params.memberName"
                    value="${params.memberName}" maxlength="50"></td>
            <td>收件人手机号</td>
            <td><input type="text" name="params.addresseeMobile"
                    value="${params.addresseeMobile}" maxlength="50"></td>
          </tr>
          <tr class="search_bg">
            <td>第三方收件人</td>
            <td><input type="text" name="params.linkman"
                    value="${params.linkman}" maxlength="50"></td>
            <td>第三方收件人联系电话</td>
            <td><input type="text" name="params.linkmanPhone"
                    value="${params.linkmanPhone}" maxlength="50"></td>
          </tr>
          <tr class="search_bg">
            <td>配送单创建时间</td>
            <td><input type="text" size="10" id="billcreatedatebegin"
                    name="params.billCreateDateBegin"
                    value="${params.billCreateDateBegin }" dataType="date">
                <a
                    href="javascript:showCalendar('billcreatedatebegin',false,'billcreatedatebegin','billcreatedateend','billcreatedateend')"> <img src="<%=webPath%>/images/i_date.gif" width="29" height="22"
                    align="middle" border=0></a>
                <input type="text" size="10"
                    id="billcreatedateend" name="params.billCreateDateEnd"
                    value="${params.billCreateDateEnd }" title="配送单创建时间" dataType="date">
              <a
                    href="javascript:showCalendar('billcreatedateend',false,'billcreatedateend')"> <img src="<%=webPath%>/images/i_date.gif" width="29" height="22"
                    align="middle" border=0></a></td>
            <td>预约配送时间</td>
            <td><input type="text" size="10" id="deliverydatebegin"
                    name="params.deliveryDateBegin" value="${params.deliveryDateBegin}" dataType="date">
                <a
                    href="javascript:showCalendar('deliverydatebegin',false,'deliverydatebegin','deliverydateend','deliverydateend')"> <img src="<%=webPath%>/images/i_date.gif" width="29" height="22"
                    align="middle" border=0></a>
                <input type="text" size="10"
                    id="deliverydateend" name="params.deliveryDateEnd"
                    value="${params.deliveryDateEnd }" title="预约配送时间" dataType="date">
              <a
                    href="javascript:showCalendar('deliverydateend',false,'deliverydateend')"> <img src="<%=webPath%>/images/i_date.gif" width="29" height="22"
                    align="middle" border=0></a></td>
          </tr>
          <tr class="search_bg">
            <td>紧急程度</td>
            <td><select id="urgencyOne" name="params.urgency">
              <option value="">-全部-</option>
            
               <c:forEach var="urgency" items="${systemType.urgencyType}">
                  <c:choose>
                    <c:when test="${urgency.value == params.urgency}">
                      <option value="${urgency.value}" selected>${urgency.label}</option>
                    </c:when>
                    <c:otherwise>
                      <option value="${urgency.value}">${urgency.label}</option>
                    </c:otherwise>
                  </c:choose>
                </c:forEach>
              
            </select></td>
            <td>配送完成时间</td>
            <td><input type="text" size="10" id="deliveryendbegin"
                    name="params.deliveryEndBegin" value="${params.deliveryEndBegin}" dataType="date">
                <a
                    href="javascript:showCalendar('deliveryendbegin',false,'deliveryendbegin','deliveryendend','deliveryendend')"> <img src="<%=webPath%>/images/i_date.gif" width="29" height="22"
                    align="middle" border=0></a>
                <input type="text" size="10"
                    id="deliveryendend" name="params.deliveryEndEnd"
                    value="${params.deliveryEndEnd }" title="配送完成时间" dataType="date">
              <a
                    href="javascript:showCalendar('deliveryendend',false,'deliveryendend')"> <img src="<%=webPath%>/images/i_date.gif" width="29" height="22"
                    align="middle" border=0></a></td>
            
          </tr>
          <tr><td>配送地址</td>
            <td><input type="text" name="params.deliveryAddress"
                    value="${params.deliveryAddress}" maxlength="100"></td></tr>
          
          
        </table></td>
    </tr>
    <tr class="search_bg">
      <td height="18" colspan="4" valign="middle"><img
            src="<%=webPath%>/images/a2.gif" width="9" height="9"> <a
            href="#" onClick="javascript:playTableOther('otherTbl')"> <font
            color="#FF9933">其他信息</font></a></td>
    </tr>
    <tr>
      <td><table width="100%" class="table_bg " align="center" border="0"
            cellpadding="1" cellspacing="0" style="display:none" id="otherTbl">
          <tr class="search_bg">
            <td width="15%">异常问题大类</td>
            <td><select name="params.questionBigCode"
                    id="billProblemBigType">
                <option value="">--全部--</option>
              </select></td>
            <td width="15%">异常问题小类</td>
            <td><select name="params.questionSmallCode"
                    id="billProblemSmallType" style="display:inline;width:340">
                <option value="">--全部--</option>
              </select></td>
          </tr>
          <tr class="search_bg">
            <td width="15%">问题处理</td>
            <td width="35%"><input type="text" name="params.processMethod"
                    value="${params.processMethod }"></td>
            <td>建单原因</td>
            <td colspan="3"><input type="text"
                    name="params.createBillCause" value="${params.createBillCause }"></td>
          </tr>
        </table></td>
    </tr>
    <tr class="search_bg">
      <td align="right" colspan="4">
      <input type="button" class="btn" value="导 出 EXCEL" style="width:100px" onClick="exportExcel();">
        &nbsp;
      <input type="submit" class="btn" value="查 询" onClick="return submitForm();">
        &nbsp;
        <input type="button" class="btn" value="重 置" onClick="javascript:clearForm('queryform');">
        &nbsp;
      </td>
    </tr>
  </table>
  <table width="20%" border="0" cellpadding="3" cellspacing="0">
    <tr>
      <td height="18" ><strong><img src="<%=webPath%>/images/arrow.gif" width="9" height="9"> 结果列表</strong></td>
    </tr>
  </table>
  <table width="100%" class="table_bg" align="center" border="1"
    cellpadding="1" cellspacing="0" id="orderlist">
    <tr align="center" class="sub_bg">
      <td width="1%">紧急度</td>
      <td width="10%">订单编号<br>订单类型</td>
      <td width="11%">配送单编号<br>配送单创建时间</td>
      <td width="8%">会员类型<br>VIP级别</td>
      <td width="6%">配送单位</td>
      <td width="9%">配送方式<br>任务类型</td>      
      <td width="8%">配送城市<br>/城区</td>     
      <td width="10%">配送地址</td>
      <td width="10%">配送时间</td>
      <td width="8%">配送员姓名<br>联系电话</td>    
      <td width="7%">截余时间</td>
      <td width="6%">配送任务状态</td>
      <td width="6%">收款任务状态</td>
    </tr>
    <c:forEach var="deliveryBill" items="${page.pageList}">
      <tr align="center" class="row_bg">
        <td><c:forEach var="t" items="${systemType.urgencyType}">
            <c:if test="${deliveryBill[0].urgency == t.value}">
              <c:if test="${t.label == '紧急'}"> <img src="${webPath}/images/dot_11.gif"></c:if>
              <c:if test="${t.label == '非常紧急'}"> <img src="${webPath}/images/dot_12.gif"></c:if>
            </c:if>
          </c:forEach>
        </td>
        <td>${deliveryBill[0].orderCD}<br>
            <c:forEach var="b" items="${systemType.billResouce}">
            <c:if test="${deliveryBill[0].billResouce == b.value}">
                ${b.label}              
            </c:if>
        </c:forEach>
        </td>
        
        <td><a href="#" onClick="viewDetailForQuery('${deliveryBill[0].id}','9')">${deliveryBill[0].deliveryCD}</a><br>${deliveryBill[0].entityCreateDate}  ${fn:substring(deliveryBill[0].entityCreateTime, 0, 5)}</td>
        <td>
        <c:forEach var="memberType" items="${systemType.memberType}">
            <c:if test="${memberType.value eq deliveryBill[0].memberLevel}">
                ${memberType.label}
            </c:if>
        </c:forEach><br>
        <c:choose>
        <c:when test="${deliveryBill[0].vipType eq '1'}">
            <font class="redone">*</font>
        </c:when>
        <c:when test="${deliveryBill[0].vipType eq '2'}">
            <font class="redone">**</font>
        </c:when>
        <c:when test="${deliveryBill[0].vipType eq '3'}">
            <font class="redone">***</font>
        </c:when>
        <c:when test="${deliveryBill[0].vipType eq '4'}">
            <font class="redone">****</font>
        </c:when>
        <c:when test="${deliveryBill[0].vipType eq '5'}">
            <font class="redone">*****</font>
        </c:when>
        <c:when test="${deliveryBill[0].vipType eq '6'}">
            <font class="redone">******</font>
        </c:when> 
        <c:when test="${deliveryBill[0].vipType eq '7'}">
            <!--img src="<%=request.getContextPath()%>/images/star7.gif">-->
        </c:when>
        </c:choose>
        </td>
        <td>${deliveryBill[2]}</td>
        
         <td><c:forEach var="t" items="${systemType.deliveryType}">
            <c:if test="${deliveryBill[0].deliveryType == t.value}"> ${t.label} </c:if>
          </c:forEach>
          <br>
          <c:forEach var="t" items="${systemType.taskType}">
            <c:if test="${deliveryBill[1] == t.value}">${t.label}</c:if>
            </c:forEach>          
        </td>
        
        <td><c:forEach var="deliveryCityID" items="${systemType.areaAddressList}">
            <c:if test="${deliveryBill[0].deliveryCityID == deliveryCityID.code}"> ${deliveryCityID.name} </c:if>
          </c:forEach>
        
        <br><c:forEach var="areaItem" items="${systemType.areaAddressList}">
            <c:if test="${areaItem.code eq deliveryBill[0].deliveryZoneID && areaItem.type eq '4' 
                && areaItem.fatherCode eq deliveryBill[0].deliveryCityID}"> ${areaItem.name} </c:if>
          </c:forEach>
        </td>       
        <td title="${deliveryBill[0].deliveryAddress}">
            ${fn:substring(deliveryBill[0].deliveryAddress, 0, 12)}
        </td>
        
        <td>${deliveryBill[0].deliveryDate}<br>
          ${fn:substring(deliveryBill[0].dsBeginTime, 0, 5)}-${fn:substring(deliveryBill[0].dsEndTime, 0, 5)}</td>
        
        <td>${deliveryBill[3]}<br>${deliveryBill[4]}</td>        
        
        <td id="${deliveryBill[0].id}~${deliveryBill[1]}"><c:choose>
            <c:when test="${deliveryBill[0].deliveryState == 8 
                    || (deliveryBill[0].deliveryState == 0 && deliveryBill[0].gatheringState == 8 )}"> 已完成 </c:when>
            <c:when test="${deliveryBill[0].deliveryState == 13 || deliveryBill[0].gatheringState == 13}"> 已取消 </c:when>
            <c:otherwise>
              <script type="text/javascript">
                        getDiffTime('${deliveryBill[0].id}~${deliveryBill[1]}', 
                            '${deliveryBill[0].deliveryDate}', '${deliveryBill[0].dsBeginTime}');
                    </script>
            </c:otherwise>
          </c:choose>
        </td>
        <td><c:forEach var="ds" items="${systemType.deliveryState}">
            <c:if test="${deliveryBill[0].deliveryState == ds.value}">${ds.label}</c:if>
          </c:forEach>
        </td>
        <td><c:forEach var="ds" items="${systemType.deliveryState}">
            <c:if test="${deliveryBill[0].gatheringState == ds.value}">${ds.label}</c:if>
          </c:forEach>
        </td>
      </tr>
    </c:forEach>
    <tr height="30">
      <td colspan="15" align="right"><c:set value="queryform" var="form_name" scope="request" />
        <jsp:include page="/jsp/common/page2.jsp" />
      </td>
    </tr>
  </table>
</form>
<%@ include file="/jsp/common/commontail.jsp"%>


 
</body>
<script>
init();
</script>
</html>
<script language="javascript">
var liandong=new CLASS_LIANDONG_YAO(array)

liandong.firstSelectChange("根目录","deliveryCenter","${params.centerCD}");

liandong.subSelectChange("deliveryCenter","deliveryUnit","${params.deliveryUnitCD}"); 


</script>
<script type="text/javascript">

    var array=new Array();
    
     <c:set scope="page" var="problemTypeBigSize" value="0"/>
     
      <c:set scope="page" var="problemTypeSmallSize" value="0"/>
     
     <c:forEach var="billProblemBigType" items="${systemType.billProblemTypeList}" >
       <c:if test="${billProblemBigType.classlevel==1}" >
      array[<c:out value='${problemTypeBigSize}'/>]=new Array();
    
      array[<c:out value='${problemTypeBigSize}'/>][0]="<c:out value='${billProblemBigType.code}'/>";
      array[<c:out value='${problemTypeBigSize}'/>][1]="根目录";
      array[<c:out value='${problemTypeBigSize}'/>][2]="<c:out value='${billProblemBigType.questionDepict}'/>";
      
      <c:set scope="page" var="problemTypeBigSize" value="${problemTypeBigSize+1}"/>    
        </c:if>  
      </c:forEach>
      
     
     <c:forEach var="billProblemSmallType" items="${systemType.billProblemTypeList}" >
         <c:if test="${billProblemSmallType.classlevel==2}" >
      array[<c:out value='${problemTypeSmallSize+problemTypeBigSize}'/>]=new Array();
      array[<c:out value='${problemTypeSmallSize+problemTypeBigSize}'/>][0]="<c:out value='${billProblemSmallType.code}'/>";
      array[<c:out value='${problemTypeSmallSize+problemTypeBigSize}'/>][1]="<c:out value='${billProblemSmallType.problemType.code}'/>";
      array[<c:out value='${problemTypeSmallSize+problemTypeBigSize}'/>][2]="<c:out value='${billProblemSmallType.questionDepict}'/>";
           
             <c:set scope="page" var="problemTypeSmallSize" value="${problemTypeSmallSize+1}"/>   
           </c:if> 
            
      </c:forEach>
    
    
    var liandong=new CLASS_LIANDONG_YAO(array)
    
    liandong.firstSelectChange("根目录","billProblemBigType","${params.questionBigCode}");
    
    liandong.subSelectChange("billProblemBigType","billProblemSmallType","${params.questionSmallCode}"); 


    
</script>

感激不尽

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • iteye_7115
    iteye_7115 2013-01-24 17:26
    已采纳

    return SUCCESS; 改为 return null;

    点赞 评论

相关推荐