【问题标题】:JERSEY RESTful - How to work with multiselect checkboxes?JERSEY RESTful - 如何使用多选复选框?
【发布时间】:2012-06-24 21:00:15
【问题描述】:

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

我已经测试过:

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

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

有什么想法吗?

【问题讨论】:

    标签: rest jersey multi-select


    【解决方案1】:

    您必须在@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。

    【讨论】:

    • 那是精神上的,我花了几个小时试图理解为什么param[0]=123&amp;param[1]=234 不起作用。泽西岛实际上正在等待param=123&amp;param=234
    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 2014-10-21
    • 2016-12-30
    • 2017-03-03
    • 1970-01-01
    • 2021-11-10
    • 2019-08-16
    • 1970-01-01
    相关资源
    最近更新 更多