2017-02-04 16 views
-1

Я хочу передать от моего angularjs данных клиента к серверу:@FormParam или @FormDataParam при получении углового http POST formData?

вот мой клиент:

 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 с несколькими параметрами должным образом?

ответ

0

Вы можете сделать это, как это, а затем бросили объект, чтобы исправить Класс:

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

Я несколько уверен, что вы не можете получить индивидуальные занятия, такие как VoiceB1 в качестве параметра службы HTTP в Java. Вы можете, однако, ответить @FrAn, получить MAP (который в основном является объектом JSON, просмотренным по-разному) и преобразовать его в ваш класс. Существуют различные способы сделать это. Вот как я это делаю.

+0

лучше использовать FormData? или json с клиентской стороны? –