无法发布具有许多(超过256个)值的表单

我在Thymeleaf上使用Spring Boot

1.2.2。我的问题是我尝试以表格形式发布一长串项目(一些标签,一个复选框),但无法执行列表中的这么多项目。(我测试了小列表,它起作用了。)

首先,我使用码头,但遇到一个错误,它说:

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个限制吗?我不想对我的结果进行分页。谢谢你的帮助。

回答:

我认为这与AutoGrowCollectionLimitSpring有关,请尝试在控制器中包含此代码以增加它:

@InitBinder

public void initBinder(WebDataBinder binder) {

binder.setAutoGrowCollectionLimit(768);

}

检查该线程在spring论坛,官方文档也这里。

以上是 无法发布具有许多(超过256个)值的表单 的全部内容, 来源链接: utcz.com/qa/400292.html

回到顶部