方法代码…超过65535字节限制

在jsp里面我有一个小标题:

  

……还有一个很棒的HTML

  ...  

如果我尝试按原样读取它,我会收到“…超过65535字节限制”的错误。我必须将其分解。因为我是java的新手,我无法弄明白该怎么做。可以。请指明我的方​​式?

JSP被转换为普通的Servlet java源,并且一些生成的方法太大,因为方法长度上有64 KB的限制(在字节代码上)。

如果可能,使用动态包含更改静态包括(实际嵌入其他JSP源)。

解决方案(可能还有很好的风格)也介绍了一些移动通用代码的方法。 例如,使用

生成HTML表格行:

 <%@ void tableRow(String... cellValues) { %><% for (String cellValue : cellValues) { %> <%= cellValue %> <% } %> <% } %> 

 <% tableRow("one", "unu", "un"); tableRow("two", "du", "deux"); tableRow("three", "tri", "trois"); %> 

PS上面的方法规模太小,无法节省太多,占用大块并创建像createResultsTable这样的方法更有效。

JSP被编译成servlet代码,然后编译成实际的java .class文件。 JSP代码将被放入一个大的doGet()方法中,如果您的JSP文件非常大,它将达到65535的方法大小限制。该限制来自JVM规范 (“code_length项的值必须小于比65536“)。

您应该将文件拆分为多个文件。 我不会将它拆分为此线程中提出的不同方法,因为它可以使代码逻辑在这种情况下更加复杂,但是对于麦克道尔提出的HTML部分执行jsp:include。

标准操作可用于在运行时包含内容 – 请参阅一些随机文档 。