【问题标题】:code too large for try block代码对于 try 块来说太大了
【发布时间】:2011-10-17 18:16:45
【问题描述】:

Eclipse 可以很好地编译和运行这个 jsp,但是当我部署到 Sun One 6.1 时,我得到“代码太大,无法尝试 {”

我正在尝试在执行汇总摘要时遍历 bean 列表。关于如何重构它以使其在我们过时的服务器上工作的任何建议?

        <c:set var="ahJan" value="20" scope="request" />
        <c:set var="ahTot" value="246" scope="request" />

        <table border="0" width="95%" cellspacing="0" cellpadding="0" class="tableBlackBorder">
            <tr>
              <td>
              <table width="100%" border="0" cellpadding="1" class="tableInternalBorder" id="sortable">
                    <tr>
                       <td class="tl">Source</td>
                       <td class="tl">Program</td>
                       <td class="tl">Project</td>
                       <td class="tl">Contract</td>
                       <td class="tl">Line Code</td>
                       <td class="tl">Jan</td>
                       <td class="tl">Total</td>
                    </tr>

                          <c:set var="prevProgram" value="" scope="request" />
                          <c:set var="prevProject" value="" scope="request" />
                          <c:set var="prevContract" value="" scope="request" />
                          <c:set var="prevLinecode" value="" scope="request" />
                          <c:set var="prevBusArea" value="" scope="request" />
                          <c:set var="ctc_totSub" value="" scope="request" />
                          <c:set var="plan_totSub" value="" scope="request" />

              <c:forEach var="gap" items="${list}" varStatus="status">

                 <c:if test="${status.first}">
                    <tr>
                       <td class="o" NOWRAP>Plan</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.pjan}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.plineSum}" /></td>
                    </tr>  
                    <tr>
                       <td class="o" NOWRAP>CTC</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><a href="CTC.jsp?filter=byDept&dept=<c:out value="${dept}" />&lineCode=<c:out value="${gap.linecode}" />&year=<c:out value="${year}" />"><c:out value="${gap.linecode}" /></a></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.ctcjan}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.ctclineSum}" /></td>
                    </tr>  
                    <tr>
                       <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>
                          <c:set var="deltaJan" value="${gap.pjan-gap.ctcjan}" />
                          <c:set var="deltaSubTotal" value="${gap.plineSum-gap.ctclineSum}" />

                          <c:set var="programDeltaJan" value="${deltaJan}" />
                          <c:set var="programDeltaSubTotal" value="${deltaSubTotal}" />

                          <c:set var="planProgramSubTot" value="${gap.plineSum}" />
                          <c:set var="ctcProgramSubTot" value="${gap.ctclineSum}" />
                    <tr>
                       <td class="o" NOWRAP>Delta Hrs</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${deltaJan}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaSubTotal}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${deltaSubTotal}" /></td>
                    </tr>  
                    <tr>
                       <td class="o" NOWRAP>Delta Heads</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaJan/(ahJan*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${deltaJan/(ahJan*8)}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaSubTotal/(ahTot*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${deltaSubTotal/(ahTot*8)}" /></td>
                    </tr>  
                 </c:if>

                 <c:if test="${gap.program_name == prevProgram}" >
                    <tr>
                       <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>

                    <tr>
                       <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>

                     <tr>
                       <td class="o" NOWRAP>Plan</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.pjan}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.plineSum}" /></td>
                    </tr>  
                    <tr>
                       <td class="o" NOWRAP>CTC</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><a href="CTC.jsp?filter=byDept&dept=<c:out value="${dept}" />&lineCode=<c:out value="${gap.linecode}" />&year=<c:out value="${year}" />"><c:out value="${gap.linecode}" /></a></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.ctcjan}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.ctclineSum}" /></td>
                    </tr>  
                    <tr>
                       <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>
                          <c:set var="deltaJan" value="${gap.pjan-gap.ctcjan}" />
                          <c:set var="deltaSubTotal" value="${gap.plineSum-gap.ctclineSum}" />


                          <c:set var="programDeltaJan" value="${programDeltaJan+deltaJan}" />
                          <c:set var="programDeltaSubTotal" value="${programDeltaSubTotal+deltaSubTotal}" />

                          <c:set var="planProgramSubTot" value="${planProgramSubTot+gap.plineSum}" />
                          <c:set var="ctcProgramSubTot" value="${ctcProgramSubTot+gap.ctclineSum}" />
                    <tr>
                       <td class="o" NOWRAP>Delta Hours</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${deltaJan}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaSubTotal}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${deltaSubTotal}" /></td>
                    </tr>  
                    <tr>
                       <td class="o" NOWRAP>Delta Heads</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaJan/(ahJan*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${deltaJan/(ahJan*8)}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaSubTotal/(ahTot*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${deltaSubTotal/(ahTot*8)}" /></td>
                    </tr>  


                 </c:if>


                 <c:if test="${gap.program_name != prevProgram && !status.first}" >
                    <tr>
                       <td class="CTCProgramSummary" colspan="5">Gap Summary for Program: <c:out value="${prevProgram}" /></td>
                       <td class="CTCProgramSummary" style="background-color: <c:if test='${0>programDeltaJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${programDeltaJan}" /></td>
                       <td class="CTCProgramSummary" style="background-color: <c:if test='${0>programDeltaDec}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${programDeltaDec}" /></td>

                       <c:set var="delta" value="${planProgramSubTot-ctcProgramSubTot}" />
                       <td class="CTCProgramSummary" style="background-color: <c:if test='${0>delta}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${delta}" /></td>

                          <c:set var="BusAreaDeltaJan" value="${BusAreaDeltaJan+programDeltaJan}" />
                          <c:set var="BusAreaDeltaSubTotal" value="${BusAreaDeltaSubTotal+programDeltaSubTotal}" />
                          <c:set var="planBusAreaSubTot" value="${planBusAreaSubTot+planProgramSubTot}" />
                          <c:set var="ctcBusAreaSubTot" value="${ctcBusAreaSubTot+ctcProgramSubTot}" />

                          <c:set var="programDeltaJan" value="" />
                          <c:set var="programDeltaSubTotal" value="" />

                          <c:set var="planProgramSubTot" value="" />
                          <c:set var="ctcProgramSubTot" value="" />
                    </tr>

                 <c:if test="${gap.business_area == prevBusArea}" >
                     <tr>
                       <td class="o" NOWRAP>Plan</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.pjan}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.plineSum}" /></td>
                    </tr>  
                    <tr>
                       <td class="o" NOWRAP>CTC</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><a href="CTC.jsp?filter=byDept&dept=<c:out value="${dept}" />&lineCode=<c:out value="${gap.linecode}" />&year=<c:out value="${year}" />"><c:out value="${gap.linecode}" /></a></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.ctcjan}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.ctclineSum}" /></td>
                    </tr>  
                     <tr>
                       <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>
                          <c:set var="deltaJan" value="${gap.pjan-gap.ctcjan}" />
                          <c:set var="deltaSubTotal" value="${gap.plineSum-gap.ctclineSum}" />


                          <c:set var="programDeltaJan" value="${programDeltaJan+deltaJan}" />
                          <c:set var="programDeltaSubTotal" value="${programDeltaSubTotal+deltaSubTotal}" />


                          <c:set var="planProgramSubTot" value="${planProgramSubTot+gap.plineSum}" />
                          <c:set var="ctcProgramSubTot" value="${ctcProgramSubTot+gap.ctclineSum}" />
                    <tr>
                       <td class="o" NOWRAP>Delta Hours</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${deltaJan}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaSubTotal}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${deltaSubTotal}" /></td>
                    </tr>  
              <tr>
                       <td class="o" NOWRAP>Delta Heads</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaJan/(ahJan*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${deltaJan/(ahJan*8)}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaSubTotal/(ahTot*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${deltaSubTotal/(ahTot*8)}" /></td>
                    </tr>  

                    </c:if>

                 <c:if test="${gap.business_area != prevBusArea && !status.first}" >

                    <tr>
                       <td class="CTCBusAreaSummary" colspan="5">Gap Summary for Business Area: <c:out value="${prevBusArea}" /></td>
                       <td class="CTCBusAreaSummary" style="background-color: <c:if test='${0>BusAreaDeltaJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${BusAreaDeltaJan}" /></td>
                       <c:set var="delta" value="${planBusAreaSubTot-ctcBusAreaSubTot}" />
                       <td class="CTCBusAreaSummary" style="background-color: <c:if test='${0>delta}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${delta}" /></td>


                          <c:set var="totalDeltaJan" value="${totalDeltaJan+BusAreaDeltaJan}" />
                          <c:set var="totalDeltaSubTotal" value="${totalDeltaSubTotal+BusAreaDeltaSubTotal}" />


                          <c:set var="planTotal" value="${planTotal + planBusAreaSubTot}" />
                          <c:set var="ctcTotal" value="${ctcTotal + ctcBusAreaSubTot}" />

                          <c:set var="BusAreaDeltaJan" value="" />
                          <c:set var="BusAreaDeltaSubTotal" value="" />

                          <c:set var="planBusAreaSubTot" value="" />
                          <c:set var="ctcBusAreaSubTot" value="" />
                    </tr>


                    <tr>
                       <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>

                    <tr>
                       <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>

                     <tr>
                       <td class="o" NOWRAP>Plan</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.pjan}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.plineSum}" /></td>
                    </tr>  
                    <tr>
                       <td class="o" NOWRAP>CTC</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><a href="CTC.jsp?filter=byDept&dept=<c:out value="${dept}" />&lineCode=<c:out value="${gap.linecode}" />&year=<c:out value="${year}" />"><c:out value="${gap.linecode}" /></a></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.ctcjan}" /></td>
                       <td class="oRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap.ctclineSum}" /></td>
                    </tr>  
                    <tr>
                       <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>
                          <c:set var="deltaJan" value="${gap.pjan-gap.ctcjan}" />
                          <c:set var="deltaSubTotal" value="${gap.plineSum-gap.ctclineSum}" />
                          <c:set var="planProgramSubTot" value="${planProgramSubTot+gap.plineSum}" />
                          <c:set var="ctcProgramSubTot" value="${ctcProgramSubTot+gap.ctclineSum}" />
                    <tr>
                       <td class="o" NOWRAP>Delta Hours</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${deltaJan}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaSubTotal}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${deltaSubTotal}" /></td>
                    </tr>  
              <tr>
                       <td class="o" NOWRAP>Delta Heads</td>
                       <td class="o" NOWRAP><c:out value="${gap.program_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.project_name}" /></td>
                       <td class="o" NOWRAP><c:out value="${gap.contract}" /></td>
                       <td class="oLeft"><c:out value="${gap.linecode}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaJan/(ahJan*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${deltaJan/(ahJan*8)}" /></td>
                       <td class="oRight" style="background-color: <c:if test='${0>deltaSubTotal/(ahTot*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${deltaSubTotal/(ahTot*8)}" /></td>
                    </tr>  

                          <c:set var="programDeltaJan" value="${programDeltaJan+deltaJan}" />
                          <c:set var="programDeltaSubTotal" value="${programDeltaSubTotal+deltaSubTotal}" />

                 </c:if>
                 </c:if>


                 <c:set var="prevLinecode" value="${gap.linecode}" />
                 <c:set var="prevContract" value="${gap.contract}" /> 
                 <c:set var="prevProgram" value="${gap.program_name}" /> 
                 <c:set var="prevProject" value="${gap.project_name}" /> 
                 <c:set var="prevBusArea" value="${gap.business_area}" /> 


                 <c:if test="${status.last}" >
                    <tr>
                       <td class="CTCProgramSummary" colspan="5">Gap Summary for Program: <c:out value="${prevProgram}" /></td>
                       <td class="CTCProgramSummary" style="background-color: <c:if test='${0>programDeltaJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${programDeltaJan}" /></td>
                       <td class="CTCProgramSummary" style="background-color: <c:if test='${0>programDeltaDec}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${programDeltaDec}" /></td>
                       <c:set var="delta" value="${planProgramSubTot-ctcProgramSubTot}" />
                       <td class="CTCProgramSummary" style="background-color: <c:if test='${0>delta}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${delta}" /></td>

                          <c:set var="BusAreaDeltaJan" value="${BusAreaDeltaJan+programDeltaJan}" />
                          <c:set var="planBusAreaSubTot" value="${planBusAreaSubTot+planProgramSubTot}" />
                          <c:set var="ctcBusAreaSubTot" value="${ctcBusAreaSubTot+ctcProgramSubTot}" />
                          <c:set var="planProgramSubTot" value="" />
                          <c:set var="ctcProgramSubTot" value="" />
                    </tr>

                    <tr>
                       <td class="CTCBusAreaSummary" colspan="5">Gap Summary for Business Area: <c:out value="${prevBusArea}" /></td>
                       <td class="CTCBusAreaSummary" style="background-color: <c:if test='${0>BusAreaDeltaJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${BusAreaDeltaJan}" /></td>
                       <c:set var="delta" value="${planBusAreaSubTot-ctcBusAreaSubTot}" />
                       <td class="CTCBusAreaSummary" style="background-color: <c:if test='${0>delta}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${delta}" /></td>


                          <c:set var="totalDeltaJan" value="${totalDeltaJan+BusAreaDeltaJan}" />
                          <c:set var="planTotal" value="${planTotal + planBusAreaSubTot}" />
                          <c:set var="ctcTotal" value="${ctcTotal + ctcBusAreaSubTot}" />
                    </tr>


                    <tr>
                       <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>

                    <tr>
                        <td colspan="18" class="TableRowBGSubNav"></td>
                    </tr>
                 </c:if>
              </c:forEach>

                    <tr>
                        <td colspan="5" class="CTCTotalSummary">TOTAL Gap Summary Hours:</td>
                       <td class="CTCTotalSummary" style="background-color: <c:if test='${0>totalDeltaJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${totalDeltaJan}" /></td>
                       <c:set var="delta" value="${planTotal-ctcTotal}" />
                        <td class="CTCTotalSummary" style="background-color: <c:if test='${0>delta}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${delta}" /></td>
                    </tr>
                    <tr>
                        <td colspan="5" class="CTCTotalSummary">TOTAL Gap Summary Heads:</td>
                       <td class="CTCTotalSummary" style="background-color: <c:if test='${0>totalDeltaJan/(ahJan*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${totalDeltaJan/(ahJan*8)}" /></td>
                       <c:set var="delta" value="${planTotal-ctcTotal}" />
                        <td class="CTCTotalSummary" style="background-color: <c:if test='${0>delta/(ahTot*8)}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${delta/(ahTot*8)}" /></td>
                    </tr>
                    <tr>
                        <td colspan="5" class="CTCTotalSummary">Accounting Hour Summary </td>
                       <td class="CTCTotalSummary" style="background-color: <c:if test='${0>ahJan}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${ahJan}" /></td>
                       <c:set var="delta" value="${planTotal-ctcTotal}" />
                        <td class="CTCTotalSummary" style="background-color: <c:if test='${ahTot}'>#FF0000</c:if>" ><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="1" value="${ahTot}" /></td>
                    </tr>

              </table>
              </td>
            </tr>
          </table>

编辑: 尝试使用 forTokes :

<c:forTokens
    items="ctcjan, ctcfeb, ctcmar, ctcapr, ctcmay, ctcjun, ctcjul, ctcaug, ctcsep, ctcoct, ctcnov, ctcdec, ctclineSum"
    delims=", " var="curField">
      <td class="TableOutputTextRight"><fmt:formatNumber type="number" minIntegerDigits="1" maxFractionDigits="0" value="${gap[curField]}" /></td>
</c:forTokens>

还是太大了。还有其他精简的想法吗?

编辑: 所以基本上我的解决方法是删除很多聚合细节。我已经提出了获取 Glassfish 或 JBoss 的 IT 请求。我已经阅读了有关 JSF 的文章,它看起来很棒!

【问题讨论】:

    标签: java jsp web-applications


    【解决方案1】:

    Java 中方法的大小限制为 65535 个字符。您需要重构该代码。这个网站在这里有一个solution。来自Java Spec

    字段和方法名称、字段和方法描述符的长度, 和其他常量字符串值被限制为 65535 个字符 CONSTANT_Utf8_info 结构的 16 位无符号长度项 (§4.4.7)。请注意,限制是在 编码而不是编码字符的数量。 UTF-8 编码 一些字符使用两个或三个字节。因此,字符串包含 多字节字符被进一步限制。

    显然,这在动态生成的 JSP 中很常见。

    而且,由于您可能会在工作中被阻止 - 以下是该网站推荐的解决方案:

    帮助您的容器模块化代码。尝试将 JSP 拆分为 几个块并使动态包含而不是静态包含。 动态包含(jsp:include 对 %@include)将编译 JSP 然后流输出而不是尝试包含所有代码 进入一个大方法或尝试 catch 块。

    【讨论】:

    • 我知道 64 KB 的限制。我的公司正在屏​​蔽该网站,所以我必须在家查看。
    • 我已经成功地在其他 JSP 中使用了 来解决这个问题,但是这个问题没有运气。尝试包括 forEach 的每个部分; status=first, middle, status=last.. 但每个部分之间的范围数据丢失了。
    • @jeff:是的,这就是问题所在。你将不得不找到一种方法来压缩它。不幸的是,这是一个 Java 限制。
    • 我使用 #FF0000 之类的东西将负数格式化为红色,这可能会使代码膨胀。这是标准方式吗?只是在寻找任何东西来减少这个 forEach。
    • 无法升级服务器、过时的 JSP、NOWRAP!、滥用数据表中的颜色、阻止指向 Java 规范的链接的 Internet 过滤器……是时候找到新工作了,杰夫。 ;)
    猜你喜欢
    • 1970-01-01
    • 2019-07-29
    • 2012-07-22
    • 1970-01-01
    • 2018-06-19
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    相关资源
    最近更新 更多