3 Stimmen

Spring MVC lässt ein @PathVariable fallen.

Wenn ich den Controller mehrmals aufrufe 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 auftreten, passiert aber.
    }`

0 Stimmen

Hast du den Gültigkeitsbereich für diesen Controller überprüft (ist es der Standard-Singleton)?

3voto

Todd Punkte 31

Ja, RegEx war für mich auch 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 wird abgeschnitten an. Der Regex-Ansatz hat bei mir funktioniert:

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

1 Stimmen

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

0voto

Dilbert789 Punkte 834

Das erneute 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:

Also, das war überhaupt nicht unser Problem... Wir hatten einen String Trimmer Editor fehlerhaft implementiert und er behielt seinen Zustand bei. Wenn wir also den Aufruf unter Last setzten, führte dies zu fehlerhaften Ergebnissen.

0 Stimmen

Und ein Jahr später taucht das Problem erneut auf. Es scheint, dass es beim ersten Mal nicht gelöst wurde.

0 Stimmen

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

0voto

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

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