3 Stimmen

Spring MVC lässt eine @PathVariable fallen.

Wenn ich den Controller mehrmals aufrufe und darauf hämmere, kommt gelegentlich mein modelCode-Parameter als null durch. Allerdings enthält die URL den modelCode. Verwendung des Spring Frameworks 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 zutreffen, tut es aber.
    }`

0 Stimmen

Hast du den Geltungsbereich für diesen Controller überprüft (ist es der standardmäßige 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 zu erfassen:

@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({ "/servers/{serverName:.+}" })

1 Stimmen

In diesem Fall ist nicht das Problem. Der Parameter ist 2 oder drei alphanumerische Zeichen, keine Dezimalstellen. Ich habe auch gesehen, dass die regionId jetzt null geht.

0voto

Dilbert789 Punkte 834

Das Aktualisieren des Spring-Frameworks auf die neueste Version scheint wieder funktioniert zu haben. Offenbar hat beim Update unseres Frameworks etwas nicht richtig funktioniert.

EDIT:

Also war dies überhaupt nicht unser Problem... Wir hatten einen String Trimmer Editor falsch implementiert und er behielt den Zustand bei. Daher kam es zu fehlerhaften Ergebnissen, als wir den Aufruf unter Last setzten.

0 Stimmen

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

0 Stimmen

Das Problem war tatsächlich ein stringTrimmerEditor, der nicht korrekt implementiert war.

0voto

Fareed Alnamrouti Punkte 28431
//In Ihrem XML-Dispatcher fügen Sie dieses Attribut 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