问题描述
我想访问多个不同类型的主体参数以在我的 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 甚至支持 body 参数吗?
解决方法
基本的 ctx.body()
方法将使您能够以字符串形式访问表单数据:
fieldOne=valueOne&fieldTwo=valueTwo&...
这可能处理起来很麻烦 - 但也可以选择将表单数据直接读入 bean:ctx.bodyAsClass(class)
。如果需要验证,那么您可以使用 ctx.bodyValidator(class)
。
或者,也许更方便,您可以使用:
ctx.formParamMap()
这为您提供了所有表单数据的链接哈希映射。您可以使用它遍历所有提交的字段。
还有相关方法:
-
ctx.formParam(name)
返回一个字段的字符串值(使用表单字段的名称) -
ctx.formParams(name)
获取值列表,如果相关字段可以有多个值,例如多选下拉列表或一个表单字段的一组相关复选框等。
如果这些没有帮助,那么我认为您可能需要使用一些示例代码向我们展示您遇到的问题。