1

我想访问多个不同类型的正文参数以在我的 API 的 POST 路由中使用,但我不知道如何在 Javalin 中访问正文参数。我没有在文档中找到有关 Javalin 中的正文参数或最佳 POST 实践的任何信息。我能找到的最接近的是:

ctx.body()                // get body as string (consumes underlying request body if not cached)
ctx.bodyAsBytes()         // get body as bytes (consumes underlying request body if not cached)
ctx.bodyAsClass(class)    // get body as class (consumes underlying request body if not cached)
ctx.bodyValidator(class)  // get typed validator for body (consumes underlying body request if not cached)

有人可以指出我正确的方向吗?Javalin 甚至支持正文参数吗?

4

1 回答 1

1

基本ctx.body()方法将使您能够以字符串的形式访问表单数据:

fieldOne=valueOne&fieldTwo=valueTwo&...

这可能处理起来很麻烦 - 但也可以选择将表单数据直接读入 bean ctx.bodyAsClass(class):. 如果需要验证,那么您可以使用ctx.bodyValidator(class).

或者,也许更方便的是,您可以使用:

ctx.formParamMap()

这为您提供了所有表单数据的链接哈希映射。您可以使用它遍历所有提交的字段。

还有相关的方法:

  • ctx.formParam(name)返回一个字段的字符串值(使用表单字段的名称)
  • ctx.formParams(name)如果相关字段可以有多个值,例如多选下拉列表或一个表单字段的一组相关复选框等,则获取值列表。

如果这些都没有帮助,那么我认为您可能需要通过一些示例代码向我们展示您卡在哪里。

于 2021-07-02T22:12:54.260 回答