Spring-MVC: È possibile avere due url-pattern per una servlet-mapping?

Ho entrambi .htm e .xml Url che voglio essere risolto .jsp file nel mio WEB-INF. Come faccio a specificare che voglio la stessa servlet per gestire sia *.htm e *.xml Url?

OriginaleL’autore ktm5124 | 2011-02-11

3 Replies
  1. 7

    Aggiunta di più url-pattern tag nella stessa mappatura per me funziona utilizzando Spring 3.0

    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/<url-pattern>
        <url-pattern>*.htm</url-pattern>
        <url-pattern>*.html</url-pattern>
        <url-pattern>*.xml</url-pattern>
    </servlet-mapping>

    Con riferimento a rendere il vostro controller di risolvere, per la visualizzazione di oggetti (.jsp) che si desidera, è possibile farlo utilizzando i controller di estendere una classe controller e seguire una specifica convenzione di denominazione o è possibile utilizzare l’annotazione mediante controllori. Qui di seguito è un esempio di annotazione guidato controller.

    @Controller
    public class Controller {
    
        @RequestMapping(value={"/","/index","/index.htm","index.html"})
        public ModelAndView indexHtml() {
            //RETURN VIEW (JSP) FOR HTM FILE
        }
    
        @RequestMapping(value="/index.xml")
        public ModelAndView indexXML() {
            //RETURN VIEW (JSP) FOR XML FILE
        }
    }
    L’aggiunta di questo può creare un problema, quando si accede immagini e altre icone con lo stesso formato “/webapp/icons/calender.jpg”. Questo potrebbe creare un problema in quanto tutte le richieste verrà diretto verso il controller.

    OriginaleL’autore Ryan Thomas

  2. 3

    Sì, si può fare molto bene.

    <servlet-mapping>
            <servlet-name>dispatcherServlet</servlet-name>
            <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
    
    <servlet-mapping>
            <servlet-name>dispatcherServlet</servlet-name>
            <url-pattern>*.xml</url-pattern>
    </servlet-mapping>

    OriginaleL’autore asgs

  3. 1

    Presumo che stai parlando di <servlet-mapping> elemento nel tuo”. web.xml” file.

    La risposta è che è possibile (o quasi) con l’utilizzo di due <servlet-mapping> elementi con modelli diversi per la stessa <servlet> elemento.

    Nota che è una caratteristica di Java EE Servlet specification. La relativa richiesta invio avviene prima che la Primavera fa a guardare le richieste.

    Ho provato, e ho ottenuto questo errore: Feb 10, 2011 11:43:45 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound ATTENZIONE: Nessuna mappatura trovato per richiesta HTTP con URI [/myfirstgrid/invoices.xml] in DispatcherServlet con il nome di ‘myfirstgrid’
    È meglio che avere solo due servlet?
    Direi che è un problema diverso. Se la config con due <servlet-mapping> elementi non lavoro, la tua richiesta non sarebbe ottenere il DispatcherServlet a tutti. Guardare il cablaggio file / annotazioni per la vostra applicazione servlets.
    Non ho annotazioni perché non ho visto alcun utilizzati in Primavera-MVC step-by-step tutorial. Sono necessari per visualizzare la risoluzione?

    OriginaleL’autore Stephen C

Lascia un commento