0
votes

Passez plusieurs clés dans @Requestparam avec une seule variable de chaîne

[! [Dans cette image, je dois rechercher la personne en fonction de la sélection déroulante] [1]] [1]

Je veux transmettre ces sélections via @requestparam , j'ai plusieurs Cadres clés mais je veux passer une clé à la fois, je veux utiliser uniquement One String Quel que soit le paramètre de la demande, il faut récupérer la valeur de la clé dans une chaîne

Je ne veux pas comme ça @RequestParam (valeur = "pname", requis = false) String pname, @Requestparam (valeur = "SSN", requis = false) SSN SSN)

Je veux quelque chose Comme ceci ( c.-à-don plusieurs keyvalues ​​avec une variable de chaîne unique ) xxx


0 commentaires

6 Réponses :


0
votes

Vous pouvez créer une rechercheRstring comme SSN = SSNValue (SSNValue que l'utilisateur sélectionne à l'écran) dans le code de l'interface utilisateur et le transmet à l'URL.


0 commentaires

0
votes

Vous pouvez utiliser la demande HTTPServletQuest pour obtenir la chaîne de requête

public List<Patient> getPatientListLike(HttpServletRequest request) {

    String searchString = request.getQueryString();

}


0 commentaires

2
votes

Vous pouvez utiliser quelque chose comme celui-ci xxx

Veuillez vous reporter ici pour plus de détails https://www.baeldung.com/spring-request-param


0 commentaires

0
votes

Je pense que vous pouvez modifier la méthode à: xxx

searchstring est présentation de la zone de texte et SearchType est la valeur déroulante de la présentation .


0 commentaires

0
votes

DemandePharam mappe également à l'objet. Ne réinventez pas la manière dont les demandes sont traitées et suivent toujours les meilleurs principes de conception de l'API. Passez les paramètres de la requête telles qu'elles sont censées, lorsque toutes les paires de la valeur de clé sont séparées par AMPersand.

class SearchParameters {
   private String pname;
   private String ssn;
   // getters-setters
}

@GetMapping("search")
public List<Patient> getPatientListLike(SearchParameters parameters)


4 commentaires

@getmapping (valeur = "/ list / recherche") Liste publique getpaientlistListListListListList (@RequestParam (Obligatoire = False) Paramètres SearchParam) {Liste Patient> PatientsServices.getPatientListlist1 (Paramètres); Retour Plist; } Je passe / recherche? pname = somename mais il imprime null dans les journaux


Faites les champs privés et ajoutez des getters et des setters publics alors à la place. Une solution alternative serait d'utiliser @jsoncreator sur le constructeur et des paramètres de marquage avec @jsonproperty annotations.


Classe publique SearchParam {@jsonProperty String Private String PName; @Jsoncreator Public SearchParam (string pname) {this.pname = pname; } String String GetPname () {Retour PName; } Public Void Setpname (String PName) {this.pname = pname; }} Vérifiez mon implémentation de service @override Liste publique getpaientlistLITLITEL (Paramètres de rechercheParam) {Liste patients; patients = patientRepository.findbyName (paramètres.getpname ()); Retour aux patients; } encore une fois, je reçois la même valeur null


Retirez l'annotation @Requestparam à partir de votre mappage. Cela ne peut pas être utilisé.



0
votes

Vous pouvez simplement remplacer la chaîne code> Demande de la section suivante avec un mappe code> Demande param. ressource

public List<Patient> getPatientListLike(@RequestParam(required = false) Map<String, String> searchParams)


0 commentaires