gpt4 book ai didi

forms - Wicket 口表格 "ServletRequest does not contain multipart content"

转载 作者:行者123 更新时间:2023-12-01 06:35:54 25 4
gpt4 key购买 nike

我有一个 wicket 表单,上面有一个文件上传框。有时这个文件上传框是隐藏的,因为用户不需要附加文档。 我已经调用了 setMultiPart(true) 在表单对象上,但我仍然(但很少)得到这个错误:

java.lang.IllegalStateException: ServletRequest does not contain multipart content. One possible solution is to explicitly call Form.setMultipart(true), Wicket tries its best to auto-detect multipart forms but there are certain situation where it cannot.

有用的信息:

  • 此表单每天提交大约 10,000 次,而我每天收到此错误 5-10 次。
  • 如果出现错误的用户使用相同的数据再次填写表单,它将正常工作。
  • 我根本无法在本地复制错误。
  • 与我交谈过的少数收到此错误的用户表示他们没有上传文件。

这是表单代码的精简版:

Form<MyObject> form = new Form<MyObject>("form")
{
@Override
protected void onSubmit()
{
//saving stuff here
}

@Override
protected void onValidate()
{
super.onValidate();
//This just highlights the fields on the form:
visitChildren( FormComponent.class, new FormValidationVisitor() );
}
}

add(form);
form.setMultiPart(true);
form.setMaxSize(Bytes.kilobytes( 5120 ));

在表单中添加了一个自定义验证器,并且对某些表单字段有一些 AJAX 回调,但表单本身不是 AJAXy。在浏览器中查看生成的源代码,我得到如下形式的声明:

form id="form4a" action="../wicket/page?12-1.IFormSubmitListener-form" encType="multipart/form-data" method="post" accept-charset="UTF-8"

提交表单的按钮在 Java 端是一个标准的 wicket Button,在 HTML 端是一个 input type="submit",尽管在​​浏览器源代码中 View 我确实在输入中看到了一个 jQuery18307179054977115189="23" 属性。

有什么想法吗?我已经尝试了各种方法来复制这个错误,但不能,所以你能提供的任何帮助都会很棒。我正在使用 Wicket 6.6.0。

最佳答案

几分钟前我遇到了同样的问题。在外部表单中,我有一个用于文件上传组件的嵌套表单。所以,这是我修复的方法:我的外部和内部形式都有 setMultipart(true) 并且它按预期工作。

关于forms - Wicket 口表格 "ServletRequest does not contain multipart content",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com