JERSEY RESTful - 如何使用多选复选框?

aby*_*lie 1 rest jersey multi-select

我正在尝试创建一个从多选复选框html组件接收参数列表的方法.但是,它不起作用.

我测试过:

@POST..
.. myMethod(@FormParam String [] myCheckboxAttribute)
.. myMethod(@FormParam List<String> myCheckboxAttribute)
Run Code Online (Sandbox Code Playgroud)

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

有些想法?

Mar*_*ula 6

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

这是一个适合我的例子:

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

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>
Run Code Online (Sandbox Code Playgroud)

提交带有B和C的表格打印出来:

[b, c]
Run Code Online (Sandbox Code Playgroud)

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