Передайте значение из Angular 5 в Java REST API с помощью http put, строка 0: -1 - нет приемлемой альтернативы при вводе '<EOF> - PullRequest
0 голосов
/ 06 июля 2018

Я столкнулся с проблемой, пытаясь изучить полный цикл веб-отслеживания данных, я передал значение из java jersay REST-API в angular 5, но я хочу передать текст из angular в backend для выполнения некоторого запроса и возврата результат снова, я запутался между @FormParam и многими вещами,

ниже мой код,

Файл-list.service.ts

import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { HttpClient } from '@angular/common/http';
import { FileList } from './file-list';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map'
save(fileList: FileList): Observable<Response> {

console.log('Saving person ' + JSON.stringify(fileList));
return this.http.put('http://localhost:8080/SWBackend/jaxrs/Person/Save', JSON.stringify(fileList), { headers: this.getHeaders()});}

List.component.html

<form (click)="save()" method="POST" action="http://localhost:8080/SWBackend/jaxrs/Person/Save">
    <p>
        Path : <input type="text" name="pathUrl" />
    </p>
    Press to show the files
    <input type="submit" value="Add User" />
    <input type="hidden" name="_method" value="PUT">
</form>

Java file.java

@PUT
@Path("Save")
@Consumes({ "application/xml", "application/json" })
@Produces("application/json")
public Response saveEmp(FilesList pathUrl) {
    System.out.println("Reach Save Emp");
    return Response.ok().header("Access-Control-Allow-Origin", "*").build();
}

Я получаю эту ошибку:

строка 0: -1 нет приемлемой альтернативы на входе ''

Я не знаю, правильный ли мой путь или нет, но я пытался с неделю назад,

спасибо всем.

1 Ответ

0 голосов
/ 06 июля 2018

Попробуйте вместо этого,

в вашей форме удалите это:

<form (click)="save()" method="POST" action="http://localhost:8080/SWBackend/jaxrs/Person/Save">

Используйте ReactiveFormsModule для ваших форм, используя FormGroup и FormControl.

Затем в вашем компоненте, когда вы отправляете форму, он вызывает функцию для вызова вашего сервиса, которая в свою очередь будет связываться с вашим контроллером java.

Компонент должен иметь функцию, связанную с вашей формой группы в вашем шаблоне (html).

Затем функция должна вызывать ваш сервис, например: this.service.save (fileList);

https://angular.io/guide/reactive-forms

например:

<form [formGroup]="fileListForm" (ngSubmit)="save(fileListForm.value)">
    <input type="text" formControlName="fileListNameControl">
</form>

Компонент:

private fileListForm: FormGroup;
private fileListNameControl: FormControl;

 ngOninit(){
   this.fileListForm = new FormGroup({
    fileListNameControl: new FormControl("", Validators.required)
   });
 }



save(form: any){
 // get your form values here and then call service
  this.fileLIstService.save('your value');
}

** Убедитесь, что вы импортировали ReactiveFormsModule через @ angular / forms в вашем модуле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...