2014-08-27 73 views
4

我正在使用Jersey Java Framework將數據從HTML表單發送到Java RESTful Web服務。我需要知道哪些複選框以該格式進行檢查(具有不同的名稱和用途)。我已經與這個嘗試在Web服務:如何獲取Java中的HTML Checked複選框澤西島

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; 
    } 
} 

發件人的形式是這樣的:

<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> 

我能成功獲得在輸入​​文本的價值,但該複選框名稱返回空值。我只需要知道該複選框是否被選中。

(注:我使用的multipart/form-data的,因爲我也是在最終版本中發送文件,所以我需要使用該格式)

感謝您的幫助!

回答

5

我找到了問題的答案。當取消選中複選框時,我希望得到一個「OFF」或「false」的值,但是如果未選中,它將返回「null」,如果選中則返回value屬性的內容(如果沒有設置值則返回「on」)。

然後,上面的代碼可以做到這一點。如果其他人發現相同的混淆或需要檢索,我不會刪除該問題。