JSP 頁面中後部標簽(BSelectTag)因缺少方法拋 NoSuchMethodError,導致前部標簽(JavaScriptStaticTag)輸出緩衝區內容截斷,且無任何異常日誌輸出。表現為驗證腳本只輸出一半,程式看似正常結束。
doEndTag 斷點、輸出調試信息 → 日誌無輸出。StringBuffer 溢出 → 改分段輸出、改 getString() 由父標簽輸出 → 現象不變。NoSuchMethodError(昨晚誤刪接口方法)。JSP 編譯為 Servlet 後,整個頁面輸出是統一緩衝區、單一執行流。後部代碼拋出錯誤(甚至是 Error 級別)導致 _jspService() 中斷,緩衝區尚未 flush() 即異常退出,**前部已寫入緩衝區的內容被截斷輸出,且容器未捕獲記錄異常**(可能被 JVM 錯誤處理機制吞噬)。
parentTag.doStartTag())繞過容器生命週期,極易導致緩衝區管理混亂,**建議完全交由容器管理標簽生命週期**。精簡 validator-rules.xml 輸出,僅輸出當前表單所需驗證腳本,減少緩衝區壓力與頁面體積。