3 Stimmen

Spring MVC gibt @PathVariable auf.

Wenn ich den Controller mehrmals treffe und darauf hämmere, kommt gelegentlich mein modelCode-Parameter als null durch. Die URL hat jedoch den modelCode darin. Verwendung von Spring Framework 3.0.5.RELEASE

 @RequestMapping(value="ws/getallvariants/{channelCode}/{modelCode}/{regionId}/{year}")
    public ModelAndView getAllVariants(@PathVariable("channelCode") String channelCode, 
          @PathVariable("modelCode") String modelCode,@PathVariable("regionId") String regionId,@PathVariable("year") String year){ 

 `if (modelCode == null)
    {
        int i = 0; // das sollte nie passieren, tut es aber.
    }`

0 Stimmen

Hast du den Geltungsbereich für diesen Controller überprüft (ist er der Standard-Singleton)?

3voto

Todd Punkte 31

Ja, RegEx war auch für mich am zuverlässigsten. Habe dies gemacht, um eine E-Mail-Adresse als Parameter abzurufen:

@RequestMapping(value = "rest/userreadserv/search/{email:.+}", method = RequestMethod.GET)
public ResponseEntity getUserAccountByEmail(@PathVariable String email) {...}

1voto

Ted Pennings Punkte 1009

Schau dir Spring MVC @PathVariable wird abgeschnitten an. Der Regex-Ansatz hat bei mir funktioniert:

@RequestMapping({ "/server/{serverName:.+}" })

1 Stimmen

In diesem Fall ist nicht das Problem. Der Parameter besteht aus 2 oder drei alphanumerischen Zeichen, keine Dezimalstellen. Ich habe auch gesehen, dass die regionId jetzt auf null gesetzt wird.

0voto

Dilbert789 Punkte 834

Das Aktualisieren des Spring-Frameworks auf die neueste Version scheint funktioniert zu haben. Offenbar hat etwas nicht korrekt funktioniert, als wir unser Framework aktualisiert haben.

EDIT:

Also war das überhaupt nicht unser Problem... Wir hatten einen String Trimmer Editor falsch implementiert und er behielt den Zustand bei. Wenn wir also den Aufruf unter Last setzten, würde es zu fehlerhaften Ergebnissen kommen.

0 Stimmen

Und ein Jahr später taucht das Problem wieder auf. Es scheint, dass es im ersten Schritt nicht gelöst wurde.

0 Stimmen

Das Problem war eigentlich ein StringTrimmerEditor, der nicht korrekt implementiert wurde.

0voto

Fareed Alnamrouti Punkte 28431
// Fügen Sie in Ihrem XML-Dispatcher diese Eigenschaft zu Ihrem Standard-Annotation-Mapper-Bean wie folgt hinzu

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X