我的视图中有一个向控制器发送对象的表单,但问题是,如果我发送的对象超过256个,就会出现异常:
org.springframework.beans.InvalidPropertyException: Invalid property 'followers[256]' of bean class [org.myec3.portalgen.plugins.newsletter.dto.FollowerFileDto]: Index of out of bounds in property path 'followers[256]'; nested exception is java.lang.IndexOutOfBoundsException: Index: 256, Size: 256
所以我在想为什么会有这样的限制,于是我找到了这个话题:https://stackoverflow.com/a/24699008/4173394
但它似乎对我不起作用(可能是我的一个坏习惯)。
下面是我的结构:我的视图名为createUpdate.vm,并像这样发布我的表单:
<form id="createFollowerFileForm" method="post" action="#route("followerFileController.upsertFollowerFile")" enctype="multipart/form-data" class="form_styled">
我在FollowerFileControl ler中的函数upsertFollowerFile:
@InitBinder
public void initBinder(WebDataBinder dataBinder) {
// this will allow 500 size of array.
dataBinder.setAutoGrowCollectionLimit(500);
}
@Secured({ "ROLE_SUPER_ADMIN_PORTALGEN", "ROLE_CUSTOMER_PORTALGEN", "ROLE_ADMIN_PORTALGEN", "ROLE_WRITER_PORTALGEN" })
public String upsertFollowerFile(
@ModelAttribute(value = "followerFile") FollowerFileDto followerFileDto,
BindingResult result, ModelMap model, HttpServletRequest request) {
我的班级如下:
public class FollowerFileDto {
private String title;
private Long followerId;
private boolean isDeletable;
private List<FollowerDto> followers;
public FollowerFileDto() {
this.followers = new ArrayList<FollowerDto>();
}
正如您在控制器中看到的那样,我尝试使用 @InitBinder 注释设置超过 256 个允许的对象 (500),但它根本不起作用。从不调用 InitBinder 函数。我做错了什么吗?感谢您的回答;)
Spring 只允许列表中有 255 个对象
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.setAutoGrowCollectionLimit(1000);
// SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
// dateFormat.setLenient(false);
// binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
实际上,没有读取@InitBinder,这就是为什么没有设置新的收集限制的原因。我不得不将我的 springmvc 路由器版本升级到 1.2.0(这也迫使我将我的 spring 版本升级到 3.2)。
在那些升级之后,用同样的代码,它工作了;)
我在将对象列表从Thymeleaf保存到控制器时遇到了一个大问题。thymeleaf中的对象列表由Jquery生成。但我不知道如何将数据传输到控制器,对象列表不知道大小。因为用户可以随时添加它。请帮助我将thymeleaf中的列表对象发送给控制器。 我创建了一个具有1个属性的新类:ArrayList loaiDoans;“LoaiDoan”是我想要保存的对象。使用该类是将列表“loaidon”从t
我有窗体和相应的控制器,对象列表被传递给它们。 实体类: 控制器: 形式: 我假设表单中的百里叶th:each循环变量不能是th:object=${ent2}(因为如果我这样做,select form返回null)。而th:value="${ent2.name}返回字符串值。所以我不得不将@RequestParam(th:value)发送给“save”方法。但是在这种情况下,我必须对数据库进行额外
假设我有 Person,我创建了一个 实例列表,并将此列表添加到。 在< code >视图页面中,我有一个表单: 当我单击提交按钮时,我想将< code >人员列表绑定到控制器上的POST方法.. 但是< code>persons列表没有在< code>POST方法中绑定/获取。 是否可以以这种方式绑定列表对象,或者是否有替代方法?
我遵循了http://viralpatel.net/blogs/spring-mvc-multi-row-submit-java-list/将对象列表发布到我的Spring Controller。很快,当列表大小达到256时,我遇到了IndexOutOfBoundsException。 我找到了一个答案,它说在WebDataBinder中设置setAuto就可以解决这个问题。所以在我的控制器中,我
seleccion“对象它是一个实体,具有我从Ajax发送的JSON的一些属性,”seleccionados“是一个列表,保存接收到的数组,但当我发送它时,obj参数总是返回一个空对象,Ajax发送错误函数,我认为问题是我在向对象发送数组,但我不知道如何解决它 选择对象模型:
JS: 豆角 错误: 对于一个简单的任务来说,这太复杂了。