我正在使用带有 Thymeleaf 的 Spring Boot 1.2.2。我的问题是我尝试在表单中发布一长串项目(一些标签,一个复选框),这不能执行我列表中的这么多项目。(我测试了小列表并且它有效。)
首先,我使用了 jetty,但出现了一个错误,上面写着:
java.lang.IllegalStateException: Form too many keys
at org.eclipse.jetty.util.UrlEncoded.decodeUtf8To(UrlEncoded.java:526)
我搜索并看到了这个帖子。结果我添加了
applicationDefaultJvmArgs = ["-Dorg.eclipse.jetty.server.Request.maxFormKeys=8000"]
到我的 gradle.build,但它没有成功。结果我切换到Tomcat,它又失败了。错误消息是:
java.lang.IndexOutOfBoundsException: Index: 256, Size: 256
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
看起来它只能执行 256 个条目。我有大约 500 个条目。所以我认为增加 maxhttpheadersize 会有所帮助,并将这一行添加到我的 application.properties 中:
server.tomcat.max-http-header-size=-1
(-1 无限制)我在 Thymeleaf 表单中设置了 method="post"。还有其他方法可以增加 256 限制吗?我不想对我的结果进行分页。谢谢你的帮助。