396 Stimmen

Spring MVC @PathVariable mit Punkt (.) wird abgeschnitten

Dies ist eine Fortsetzung der Frage Spring MVC @PathVariable wird abgeschnitten

Das Spring-Forum gibt an, dass es behoben wurde (Version 3.2) als Teil des ContentNegotiationManagers. Weitere Informationen finden Sie unter dem folgenden Link.
https://jira.springsource.org/browse/SPR-6164
https://jira.springsource.org/browse/SPR-7632

In meiner Anwendung wird die Anforderungsparameter mit .com abgeschnitten.

Kann mir jemand erklären, wie man dieses neue Feature verwendet? Wie wird es in XML konfiguriert?

Hinweis: Spring-Forum- #1 Spring MVC @PathVariable mit Punkt (.) wird abgeschnitten

28voto

Martin Čejka Punkte 431

Das Hinzufügen von ":.+" hat bei mir funktioniert, aber erst nachdem ich die äußeren geschweiften Klammern entfernt habe.

value = {"/benutzername/{id:.+}"} hat nicht funktioniert

value = "/benutzername/{id:.+}" funktioniert

Ich hoffe, ich konnte jemandem helfen :)

16voto

amit dahiya Punkte 179

/somepath/{variable:.+} funktioniert in Java requestMapping Tag.

15voto

Bruno Carrier Punkte 530

Hier ist ein Ansatz, der ausschließlich auf einer Java-Konfiguration basiert:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;

@Configuration
public class MvcConfig extends WebMvcConfigurationSupport{

    @Bean
    public RequestMappingHandlerMapping requestMappingHandlerMapping() {
        RequestMappingHandlerMapping handlerMapping = super.requestMappingHandlerMapping();
        handlerMapping.setUseSuffixPatternMatch(false);
        handlerMapping.setUseTrailingSlashMatch(false);
        return handlerMapping;
    }
}

12voto

Marcelo C. Punkte 3644

Eine ziemlich einfache Möglichkeit, dieses Problem zu umgehen, besteht darin, einen abschließenden Schrägstrich anzufügen ...

zum Beispiel:

verwende :

/somepath/filename.jpg/

anstatt:

/somepath/filename.jpg

11voto

Dapper Dan Punkte 812

In Spring Boot lösen reguläre Ausdrücke das Problem wie

@GetMapping("/pfad/{param1:.+}")

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