如何从Javalin中读取多个body参数



我想访问不同类型的多个body参数,以便在我的API中的POST路由中使用,但我不知道如何访问Javalin中的body参数。我在文档中没有找到任何关于主体参数或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甚至支持身体参数吗?

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

fieldOne=valueOne&fieldTwo=valueTwo&...

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

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

ctx.formParamMap()

这将为您提供所有表单数据的链接哈希图。您可以使用此方法迭代所有提交的字段。

还有相关的方法:

  • ctx.formParam(name)返回一个字段的String值(使用表单字段的名称(
  • 如果有问题的字段可以有多个值,如多选下拉列表或一个表单字段的一组相关复选框,则ctx.formParams(name)可获取值列表,依此类推

如果这些都没有帮助,那么我认为您可能需要用一些示例代码向我们展示您到底在哪里遇到了问题。

最新更新