如何在Java Jersey中获取HTML Checked Checkbox

Ang*_*nd8 5 html java rest checkbox jersey

我正在使用Jersey Java Framework将数据从HTML表单发送到Java RESTful Web服务.我需要知道在该表单中检查了哪些复选框(具有不同的名称和用途).我在网络服务中试过这个:

package com.myexample;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.sun.jersey.multipart.FormDataParam;

@Path("/service")
public class MyService{

    @POST
    @Path("/formData")
    @Produces(MediaType.TEXT_HTML)
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public String formData(@FormDataParam("myInputbox") String myInputbox, @FormDataParam("myCheckbox") String myCheckbox){
        return "Now I get: <br/>Inputbox: " + myInputbox + "<br/>Checkbox: " + myCheckbox;
    }
}
Run Code Online (Sandbox Code Playgroud)

发件人表单是这样的:

<html>
    <head>
        <title>Send a checkbox</title>
    </head>
    <body>
        <form method="post" action="http://localhost:8080/Example/rest/service/formData" enctype="multipart/form-data">
            <input type="checkbox" name="myCheckbox">This is my checkbox
            <input type="text" name="myInputbox" value=""/>
            <input type="submit" value="Send data"/>
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我可以在输入文本中成功获取值,但复选框名称返回空值.我只需要知道是否选中了该复选框.

(注意:我使用multipart/form-data,因为我也在最终版本中发送文件,所以我需要使用那种格式)

谢谢你的帮助!

Ang*_*nd8 9

我找到了问题的答案.当取消选中该复选框时,我希望获得"OFF"或"false"值,但是取消选中时返回"null",如果选中则返回value属性的内容(如果未设置值,则返回"on").

然后,上面的代码可以成功.如果其他人发现同样的混淆或需要检索,我不会删除该问题.