【问题标题】:Submit large amount of text to springboot controller向springboot控制器提交大量文本
【发布时间】:2017-11-01 07:58:45
【问题描述】:

我有一个 springboot 应用程序,可以编辑非常大的配置文件(大约 40k 行)。应用程序的一部分处理在 .js 文本编辑器中直接编辑文件。但是,在那里所做的更改无法单独跟踪并上传到后端,这意味着我必须为每次更改更新整个配置。

现在在测试阶段,我真的很天真地只是通过 html 表单将整个内容作为字符串发送,因为我们只处理小文件。现在文件变大了,导致后端控制器方法中的 String 参数为Null

HTML代码:

<form action="/someUrl" method="post">
    <input type="hidden" id="editorText" name="editorText" />
    <input class="btn btn-success btn-lg" style="margin-top: 15px;" type="submit" th:value="#{mSave}"/>
</form>

现在我的问题是如何通过 html 将大量文本可靠地发送到 spring 控制器? 如果有任何帮助,我正在使用QuillJS 文本编辑器。提交的输入会随着每次更改而更新,如下所示:

document.getElementById("editor").value = quill.getText();

而后端的spring控制器是这样的:

@RequestMapping(value="/someUrl", method = RequestMethod.POST)
public String changeInEditor(Model model, RedirectAttributes redirectAttributes, @RequestParam("editorText") String editorText) {


//editorText is Null
//...
}

非常感谢任何提示/帮助!

编辑 1:添加了 @RequestParam 和 RequestMethod

【问题讨论】:

  • 是的,它仍然适用于较小的文件。这会导致org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'editorText' is not present 异常。我认为问题在于控制器想要在传输成功之前访问参数还是不可能?
  • 是的,我的命名是正确的,@RequestParam 和输入标签都称为editorText。但也有了新的控制器签名,它引发了上述异常。 (上述问题中的编辑签名)
  • 那我不知道。最后想一想,将您的 getElementId 设置为 .getElementById("editorText")
  • 遗憾的是这也不是问题,现在检查了两次命名,它仍然适用于较小的文件。不过感谢您的帮助!
  • 由于您在控制器方法中使用@RequestParam("editorText"),那么您应该在DOM 或表单中拥有一个名为editorText 的输入类型属性。小文件又是什么意思?这只是一个文本字段[not a file/multipart type]。您要发送多少文本,这应该不是发布请求的问题。

标签: javascript java spring spring-boot


【解决方案1】:

尝试将其作为多部分文件上传。这是一个供参考的链接。

How to upload file in spring?

【讨论】:

    猜你喜欢
    • 2011-08-28
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    相关资源
    最近更新 更多