JSP类解释

时间:2014-07-30 03:10:27

标签: java jsp spring-mvc

所以最近我遇到了一个我从未遇到过的错误。

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的大小吗?听起来其他人已经解决了循环等问题。有人能指出我的资源或更好地解释这个吗?如有必要,我可以提供更多代码。

1 个答案:

答案 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>的值。