Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Numero variabile parametri con Jersey

    Buon giorno a tutti,
    sto implementando un web service in Java utilizzando Jersey. Ho la necessità di passare ad un metodo che gestisce una richiesta POST proveniente da un form un numero variabile di parametri. Mi spiego meglio: il form può inviare da uno ad n valori, il numero di valori passati ogni volta è contenuto in uno dei valori passati. Siccome però questi valori sono passati tutti in blocco dal web service al metodo come parametri non posso sapere quanti sono a priori.
    Il metodo per essere riconosciuto dal web service(per chi non conoscesse Jersey) deve avere i parametri che coincidano con quelli passati.
    Come posso risolvere il problema?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da masternick Visualizza il messaggio
    Ho la necessità di passare ad un metodo che gestisce una richiesta POST proveniente da un form un numero variabile di parametri.
    Se devi "iterare" o comunque cercare tu in modo preciso e "programmatico" i parametri passati da form (non i query-param), allora:

    @POST
    public Blabla metodo(MultivaluedMap<String, String> formParams)
    Ultima modifica di andbin; 29-08-2017 a 13:01
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se devi "iterare" o comunque cercare tu in modo preciso e "programmatico" i parametri passati da form (non i query-param), allora:

    @POST
    public Blabla metodo(MultivaluedMap<String, String> formParams)
    Grazie, però mi da questo errore: HTTP Status 415 - Unsupported Media Type

    Questo è il metodo in questione:
    codice:
     @POST
        @Path("/insert/dettagliEvento")
        @Consumes({MediaType.MULTIPART_FORM_DATA})
        @Produces("text/plain")
        public String unkParamForm(MultivaluedMap<String, String> formParams) {
        	System.out.println(formParams.size());
        	System.out.println("Fine");
        	return "string";
        }

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da masternick Visualizza il messaggio
    HTTP Status 415 - Unsupported Media Type

    codice:
        @Consumes({MediaType.MULTIPART_FORM_DATA})
    Il problema è un altro: MediaType.MULTIPART_FORM_DATA (ovvero "multipart/form-data") si usa quando ci sono dei file "upload".

    Se invece ci sono normali campi, va usato MediaType.APPLICATION_FORM_URLENCODED (ovvero "application/x-www-form-urlencoded").
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    La questione è appunto spinosa perche ho anche dei file in upload. E anche il numero di alcuni di questi varia ��

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da masternick Visualizza il messaggio
    La questione è appunto spinosa perche ho anche dei file in upload. E anche il numero di alcuni di questi varia ��
    Se è anche un file-upload, allora MediaType.MULTIPART_FORM_DATA è ok.

    Però nel HTML il form dovrà specificare il enctype allo stesso modo:

    <form action=" ..... " method="post" enctype="multipart/form-data">

    altrimenti no, non ti funzionerà.
    Ultima modifica di andbin; 29-08-2017 a 15:02
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.