获取角度http POST formData时@FormParam或@FormDataParam?

时间:2017-02-04 13:22:11

标签: java angularjs http https jersey

我想从我的angularjs客户端数据传递到服务器:

这是我的客户:

        var formData = new FormData();
        formData.append('voice', voice);
        formData.append('isAddMode', isAddMode);
        $http.put('/api/Voices/updateVoice', formData).then(
            function successCallback(response) {

或:

        $http.put('/api/Voices/updateVoice', {voice: voice, isAddMode : isAddMode}).then(

这是我的服务器

public void updateVoice(@FormDataParam("voice") VoiceBl voice, @FormParam("isAddMode") boolean isAddMode) throws Exception {

我应该如何修改服务器API以正确获取具有多参数的POST请求?

2 个答案:

答案 0 :(得分:0)

您可以这样做,然后将对象强制转换为正确的类:

@POST 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public void create(final MultivaluedMap<String, Object> formParams) {
  VoiceBl voice = (VoiceBl) formParams.get("voice");
  ...
}

答案 1 :(得分:0)

我确信您无法接收自定义类,例如VoiceB1作为Java中HTTP服务的参数。但是,当@FrAn回答时,您可以接收MAP(基本上是以不同方式查看的JSON对象)并将其转换为您的类。有各种方法可以做到这一点。无论如何我就是这样做的。