gpt4 book ai didi

JSP 页面变得太长而无法编译

转载 作者:行者123 更新时间:2023-12-04 22:08:31 24 4
gpt4 key购买 nike

我有一个 JSP 页面。随着时间的流逝,它不知何故变得很长。

最近我正在编译jsp页面,我从编译器那里得到一个异常

   org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 320 in the generated java file
The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit

Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:457)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)

我应该怎么做才能避免这种异常?

最佳答案

在 JSP 编译期间,JSP 文件的整个主体将被放置在单个 try 中。堵塞。 Java block 可以包含的限制是 64KB。您的 JSP 文件生成的 Java 代码的大小显然超过了该大小。

也许您在 JSP 文件中有非常多的 HTML 或条件语句。您需要将 JSP 文件分成更小的部分,这些部分由 <jsp:include> 包含.例如,一个 JSP 包括每个页眉、页脚、菜单、正文和/或有条件显示的部分等的文件。它具有更好的可重用性的额外优势。

或者,也许您遵循了使用 scriptlet(那些 <% %> 东西)在 JSP 文件中编写原始 Java 代码的令人气馁的老派不良做法,而该 Java 代码实际上属于普通的 Java 类。 Get rid JSP 中的所有 Java 代码并将其移动到一个完全有值(value)的 servlet然后上课。在其中,您可以自由地编写可重用的类/方法,而不是将整个东西放在一个无法维护的“上帝” block 中。

关于JSP 页面变得太长而无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8728608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com