Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1012 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  aide Spring boot /jquery /api

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

aide Spring boot /jquery /api

n°2328395
R-a-p-h2
Posté le 30-01-2019 à 15:04:34  profilanswer
 

Bonjour,
Je fais appel à vous pour une petite aide .
 
Je suis entrain de réaliser une interface en MVC avec spring. Mais completement debutant sur le sujet je galere un peu.
 
Pour faire court, j'ai une lib avec plein de fonctions d'api google que j'ai crée.  
Par exemple j'ai crée un controller pour faire appel à la fonction :  

Code :
  1. @RestController
  2. public class mainController {
  3.     @RequestMapping(value = "/index", method = RequestMethod.GET)
  4.     public String index(@RequestParam String inputParameter) throws IOException, GeneralSecurityException {
  5.         DriveQuickstart drive = new DriveQuickstart("c:/temp/credentials.json" );
  6.         String res = drive.checkFile(inputParameter);
  7.         return res;
  8.     }
  9. }


 
Dans ma vue, j'ai fait un petit form, ou je souhaite passer ma string dans l'inputparameter ( dans la method drive.checkfile(ma string)
 
ma vue :  

Code :
  1. <form method="post" action="/">
  2. <input type="text" id="query" placeholder="file to search ...">
  3. <input type="submit" id="submit" value="fetch!">
  4.     </form>
  5. </div>
  6. <script type="text/javascript">$.get("/index", null, function (data){
  7.     $('#result').html(data);
  8.     });</script>


 
avec le petit jquery pour afficher le résultat dans ma vue.
 
Ma question est simple, comment faire passer la string que j'ai rentre dans mon form dans le controller de ma method drive.checkfile( ici la string)
et l'afficher dans la vue.
Je ne sais pas si j'ai ete claire?
 
Merci pour votre aide.
Raphael

mood
Publicité
Posté le 30-01-2019 à 15:04:34  profilanswer
 

n°2328397
Jithel
Posté le 30-01-2019 à 15:18:14  profilanswer
 

J'ai déjà eu ce problème. En fait, Javascript ne permet pas de passer de paramètre à une requête HTTP "GET". De ce fait, tu reçois null du côté Java.
 
Une solution serait de changer la méthode HTTP utilisée.

n°2328398
R-a-p-h2
Posté le 30-01-2019 à 15:23:00  profilanswer
 

Pour passer le paramètre, je souhaite utiliser spring, et apres j'utilise jquery pour afficher le résultat directement dans la fenetre, ( dans une div)

n°2328400
Jithel
Posté le 30-01-2019 à 15:30:32  profilanswer
 

Non, ici c'est l'inverse. Spring te permet d'attendre une requête HTTP "GET" d'un client web donc ici jQuery. C'est jQuery dans ton code Javascript qui fait appel à Spring. Comme je te l'ai précisé, en Javascript, passer un paramètre pour une méthode "GET" n'a aucun effet.

n°2328401
R-a-p-h2
Posté le 30-01-2019 à 15:35:06  profilanswer
 

donc il faudrait que je fasse d'abord un jquery.post() et apres get ?
 
Honnêtement, je suis un peu perdu la.


Message édité par R-a-p-h2 le 30-01-2019 à 15:35:47
n°2328403
Jithel
Posté le 30-01-2019 à 15:48:18  profilanswer
 

Remplace null dans $.get("/index", null, …) par document.getElementById('query').value.

n°2328763
R-a-p-h2
Posté le 05-02-2019 à 13:27:21  profilanswer
 

Jithel a écrit :

Remplace null dans $.get("/index", null, …) par document.getElementById('query').value.


 
Merci, pour ton aide, alors j'ai pas réussi avec le getElementByid, enfaîte quand je submit ça me claque un 403.  
 
Du coup à la place de null j'ai mis {"query": que} qui reprend mon input text.
et avec un val(),  ma query string passe, mais uniquement lors de chargement de la page. ( par exemple je mets ma recherche, je submit (erreur 403) puis je reviens en arrière la ma recherche passe) Bon c'est vraiment pas opti... du coup j'ai pensé à faire :

Code :
  1. var que = $( "input" )
  2.         .keyup(function() {
  3.             var value = $( this ).val();
  4.             $( "p" ).text( value );
  5.         })
  6.         .keyup();


 
Mais la ça marche pas du tout.
Aurais tu une idée pour trigger mon $.get soit a chaque fois que je tape une touche (peu etre pas la meilleur solution pour le nombre de request) ou ça par un button submit?
Merci  

n°2328766
Jithel
Posté le 05-02-2019 à 13:42:02  profilanswer
 

il faut que tu mettes  
$.get("/index", null, function (data){
    $('#result').html(data);
    });
 
dans keyup après  
$( "p" ).text( value );

n°2328768
R-a-p-h2
Posté le 05-02-2019 à 13:53:40  profilanswer
 

Yep parfait :D
 
merci beaucoup. + 2 hfr reputation :D
 ps ( j'ai mis {"query":value} à la place de null)
 
Par contre il envois une requête sur mon api drive a chaque lettre, c'est de rangeant a ton avis?
 
edit : petite question sup , si j'avais eu plusieurs  input différent, comment les différentiés dans la méthode?


Message édité par R-a-p-h2 le 05-02-2019 à 13:59:47
n°2328781
Jithel
Posté le 05-02-2019 à 17:29:47  profilanswer
 

Maintenant, au lieu de faire  
 
$( "input" )
        .keyup
 
tu fais
 
$("submit" )
       .submit
 
Tu utilises l'identifiant unique de ton input pour lui associer un événement keyup donc tu pourrais différencier plusieurs input simplement en copiant / collant ce code et en remplaçant l'identifiant par un autre identifiant unique associé (input1, input2, input3 et les keyup associés)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  aide Spring boot /jquery /api

 

Sujets relatifs
aide pointeur [résolu]Demande d'aide pour un proramme de verrouillage arduino
aide lua[Aide] Création jeu textuel
Aide récupérer les derniers status de chaque jobaide pour prg
Novice : besoin d'aide sur un codagebesoin aide
Besoin d'aide pour une requêteBesoin d'aide sur prototype, bind, this etc
Plus de sujets relatifs à : aide Spring boot /jquery /api


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR