Domanda

Il modello URL del mio servlet Spring Dispatcher è /* (come suggerisce Spring MVC REST)
Ora tutte le richieste vengono risolte da questo servlet.anche CSS/JS/Immagini vengono risolti e gestiti dal servlet..

Quindi, Spring MVC tenta di trovare il controller..:(

Come aggirare questo?Esiste una soluzione standard a questo problema??

& Non voglio cambiare il modello url in /rest/* (quindi, altre risorse statiche sono accessibili da /css/ o /js ecc.)

È stato utile?

Soluzione

Puoi mappare i tuoi controller su un insieme più piccolo di URL (ad es./app/*), quindi riscrivi gli URL che i tuoi utenti effettivamente vedono in modo che non ne vengano nemmeno a conoscenza.Dai un'occhiata a l'esempio di webapp mvc-basic, in particolare web.xml e urlrewrite.xml per vedere come viene eseguito.

Altri suggerimenti

Mappare il dispatcher Spring su alcune sottosezioni dello spazio URL e utilizzare Tuckey per riscrivere gli URL con cui l'utente ha a che fare.

http://www.example.org/app/controller/action -> http://www.example.org/controller/action

Solo un aggiornamento in merito a questo:la configurazione di riscrittura predefinita definita nell'esempio di primavera non ha funzionato immediatamente per me.Le regole di riscrittura per fogli di stile, script, ecc.venivano ancora elaborati dalla regola /app/* e successivamente gestiti dal file DispatchServlet, il che non è auspicabile.

Ho dovuto aggiungere il last="true" attributo alle regole di stili/script/immagini per indicare che altre regole non dovrebbero essere applicate e ho dovuto utilizzare la macro URL di FreeMarker Spring in qualsiasi percorso di inclusione CSS/JS.

Nel caso in cui qualcuno riscontri lo stesso problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top