3 Stimmen

Spring MVC gibt einen @PathVariable fallen

Wenn ich den Controller mehrmals drücke und darauf hämmere, kommt gelegentlich mein modelCode-Parameter als null durch. Allerdings hat die URL 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; // Dies sollte nie ausgelöst werden, geschieht aber dennoch.
    }`

0 Stimmen

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

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

1voto

Ted Pennings Punkte 1009

Schauen Sie sich Spring MVC @PathVariable getting truncated an. Der Regex-Ansatz hat bei mir funktioniert:

@RequestMapping({ "/servers/{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 null geht.

0voto

Dilbert789 Punkte 834

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

BEARBEITEN:

Dies war also überhaupt nicht unser Problem... Wir hatten einen String Trimmer Editor falsch implementiert und er behielt den Zustand bei. Also, als wir den Aufruf unter Last setzten, überschritten sich die Ergebnisse.

0 Stimmen

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

0 Stimmen

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

0voto

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