我希望能够发布一个已编制索引数组字段的表单,并从Sparkjava中读取这些字段。基于一些阅读,我发现了一些使用方括号来索引重复字段的建议。这看起来像是一个自动将重复字段解析为数组的php约定。但是我无法弄清楚Sparkjava对这个字段做了什么,它似乎忽略了括号并为我提供了该键的空对象。
由于这很明显是泥,这里有一些代码:
这是我的表格:
<form method="post">
Array: <input type="text" name="MyArray[1]" /><br>
Array: <input type="text" name="MyArray[2]" /><br>
Name: <input type="text" name="name" /><br>
<button type="submit">Submit</button>
</form>
这是我的表单处理端点:
post("/form", (req, res) -> {
String data = req.queryMap().toMap().toString();
return data;
});
当我在表单中输入值并提交时,结果页面会显示:
{name=[Ljava.lang.String;@7ae881bf, MyArray=null}
因此它将name
解析为一个键(就像任何无聊的形式一样),但看起来它解析MyArray字段上的尾随[]
作为一些特殊结构的指示符,应该将其解析为具体对象。如果我省略索引,它的行为相同,并将两个字段命名为MyArray[]
。如果它允许我以MyArray[1]
和MyArray[2]
访问密钥,我会很高兴,但我更愿意了解Sparkjava尝试做什么样的解析魔法,以便我可以利用它。
谢谢!