1

我正在尝试创建一个从多选复选框 html 组件接收参数列表的方法。但是,它只是行不通。

我测试过:

@POST..
.. myMethod(@FormParam String [] myCheckboxAttribute)
.. myMethod(@FormParam List<String> myCheckboxAttribute)

这些都不是很好(最后一个(列表)只选中了第一个复选框,但其他没有)。

有什么想法?

4

1 回答 1

6

您必须在 @FormParam 注释中指定表单参数的名称。

这是一个对我有用的例子:

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_PLAIN)
public String postForm(@FormParam("param") List<String> param) {
    return param.toString();
}

HTML 表单:

<html><body>
<form action="http://localhost:9998/myresource" method="POST">
<input type="checkbox" name="param" value="a">A</input>
<input type="checkbox" name="param" value="b">B</input>
<input type="checkbox" name="param" value="c">C</input>
<input type="submit">OK</input>
</form>
</body></html>

提交带有 B 和 C 选中的表单会打印出:

[b, c]

我还在调试器中验证了该列表填充了 2 个字符串 b 和 c。

于 2012-06-22T17:16:17.520 回答