所以最近我遇到了一个我从未遇到过的错误。
The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit
我在控制器中设置了model属性,被授予了相当大的对象,我不希望它抛出错误。我开始限制代码以找出导致问题的原因。我在此处已阅读以删除<jsp:include
并使用<%@ include
。
我采取的下一步是打破JSP。我现在意识到我正在像这样单独构建我的颜色和字体
<form:select path="bottom.backgroundColor" class="form-control">
<form:option value="#000000">Black</form:option>
<form:option value="#FFFFFF">White</form:option>
<form:option value="#FF0000">Red</form:option>
<form:option value="#00FF00">Green</form:option>
<form:option value="#0000FF">Blue</form:option>
<form:option value="#F0F000">Yellow</form:option>
<form:option value="#FF7000">Orange</form:option>
<form:option value="#600060">Purple</form:option>
<form:option value="#905030">Brown</form:option>
</form:select>
删除这些项目解决了我的问题。
问题:为什么?我的理解是JSP构建了自己的类,但似乎并没有花费太多时间来打破它。问题是传入的modelAttribute的大小吗?听起来其他人已经解决了循环等问题。有人能指出我的资源或更好地解释这个吗?如有必要,我可以提供更多代码。
答案 0 :(得分:0)
问题是你的JSP太大了,即使减少了它的几个部分。似乎您仍在重复JSP代码的这一部分(或类似):
<form:select path="bottom.backgroundColor" class="form-control">
<form:option value="#000000">Black</form:option>
<form:option value="#FFFFFF">White</form:option>
<form:option value="#FF0000">Red</form:option>
<form:option value="#00FF00">Green</form:option>
<form:option value="#0000FF">Blue</form:option>
<form:option value="#F0F000">Yellow</form:option>
<form:option value="#FF7000">Orange</form:option>
<form:option value="#600060">Purple</form:option>
<form:option value="#905030">Brown</form:option>
</form:select>
最后填充自动生成的servlet中的_jspService
方法。此问题的解决方案是将此静态数据存储在应用程序scopde a.k.a。ServletContext
中,并从中填充<form:option>
的值。