Ho usato il Tuckey URLRewriteFilter per gestire elementi di percorso che contengono '/' caratteri, come non credo Spring 3 MVC li supporta ancora.
http://www.tuckey.org/
Hai messo questo filtro per la vostra applicazione, e di fornire un file di configurazione XML. In tale file vengono fornite regole di riscrittura, che è possibile utilizzare per tradurre gli elementi del percorso contenenti i caratteri '/' nei parametri di richiesta che Spring MVC può gestire correttamente utilizzando @RequestParam.
WEB-INF/web.xml:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<!-- map to /* -->
WEB-INF/urlrewrite.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
"http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite>
<rule>
<from>^/(.*)/(.*)$</from>
<to last="true">/$1?restOfTheUrl=$2</to>
</urlrewrite>
controller metodo:
@RequestMapping("/{id}")
public void handler(@PathVariable("id") int id, @RequestParam("restOfTheUrl") String pathToFile) {
...
}
+1, ha imparato qualcosa di nuovo – Bozho
No, attributo HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE contiene il percorso completo WHOLE. – uthark
uthark ha ragione. Il valore in 'restOfTheUrl' sarà l'intero percorso, non solo la parte rimanente catturata da' ** ' – dcstraw