2016-10-03 7 views
1

Я работаю над приложением JAX-RS в AngularJS &. (Честно говоря я новичок в обоих)AngularJS и JAX-RS с нг-Grid

На интерфейсе у меня есть нг-сетки, каждая строка имеет 3 колонки, 1-й флажок, 2-е имя, 3-й возраст.

Пользователь может выбрать строки из сетки и нажать на "export to excel". Я отправляю все данные, когда пользователь нажимает на кнопку Экспортировать, чтобы преуспеть

@POST 
@PATH("/xlsExport") 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public Response excelExport(MultiPartFormData mfd) throws Exception { 
     System.out.ptrintln(mfd); // code not reaching here 
} 

подводит исключение «RESTEASY003065: не может потребить Contet типа» UI выглядит как

Пробовал Также

@POST 
    @PATH("/xlsExport") 
    @Consumes(MediaType.APPLICATION_JSON) 
    public Response excelExport(String mfd) throws Exception { 
      System.out.ptrintln(mfd); // code not reaching here 
    } 

Те же ошибки

также пробовал

Это не дает ошибок, но также не дает мне всех строк, просто дает некоторые неправильные значения .... так что, если я выбираю 3 строки по 10, я получаю некоторые неправильные значения в String с Теперь

Пробовал Также

@POST 
    @PATH("/xlsExport") 
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED_TYPE) 
    public Response excelExport(@FormParam("id") Sting id) throws Exception { 
      System.out.ptrintln(id); // Compile time error 
    } 

же ошибка

<form novalidate name="someForm" method="POST" action="/xlsExport"> 
    ... 
    <div class="ngHeaderContainer"> 
     <div> <input class="ngSelectoionHeader" .../> </div> <!-- checkbox --> 
     <div> Name </div> 
     <div> Age </div> 
    </div> 
    <input type="submit" value="Export"> 
</form> 

будет признателен, если может получить некоторую помощь

  1. Как устранить ошибку
  2. Это лучший способ сделать это, не могу я использовать данные в формате JSON
+1

Чтобы отправить JSON (в настоящее время вы отправляете 'application/x-www-form-urlencoded', но кто знает, как выглядят данные), вам нужно будет обработать событие отправки формы в своем внешнем приложении (т.е. удалить атрибут 'action' и нас e 'ng-submit'), затем используйте' $ http' или аналогичный, чтобы опубликовать данные – Phil

+1

Спасибо за вашу помощь, смог сделать это с помощью ng-submit ... Я не вижу возможности принимать комментарии как ans ... может быть, если вы можете отправить то же самое, что и ответ, примет его – Lav

ответ

1

Для того, чтобы отправить JSON (вы в настоящее время отправки application/x-www-form-urlencoded, но кто знает, что как выглядят простые HTML-данные), вам нужно будет обработать событие отправки формы в своем внешнем приложении.

Чтобы сделать это, удалите атрибут action и использовать ng-submit для вызова функции контроллера, который использует $http или аналогичные размещать данные ...

<form novalidate name="someForm" ng-submit="submit()"> 

и что-то вроде этого в контроллере

$scope.submit = function() { 
    $http.post('/xlsExport', $scope.someDataModel).then(res => { 
     // handle the response here 
    }); 
};