Carte / (racine de l'URL) dans Spring MVC

C'est quelque chose qui, je pense, devrait être très facile, mais jusqu'à présent, je n'ai pas été en mesure de l'obtenir pour fonctionner.

Ce que je veux faire est la carte de mon chemin de la racine à un Contrôleur Spring MVC. Avec une normale Servlet, je voudrais juste ajouter un mappage pour "/" dans mon web.xml, et il serait de ramasser assez bien. Mais avec Spring MVC, pas tellement.

J'ai essayé de nombreuses combinaisons, mais aucune ne semble fonctionner. Je pense que la suivante devrait fonctionner.

Dans web.xml:

<servlet-mapping>
    <servlet-name>myDispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

Dans mon contextConfigLocation fichier:

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="alwaysUseFullPath" value="true"/>
    <property name="mappings">
        <util:map>
            <entry key="/" value-ref="rootController"/>
        </util:map>
    </property>
</bean>

<bean id="rootController" class="my.package.RootController">

Alors évidemment, il y a le cas du contrôleur lui-même. Je n'ai pas la moindre idée de comment carte la méthode de la racine du chemin. Ma tentative est quelque chose comme ceci:

public class RootController extends MultiActionController {

    @RequestMapping("/")
    public ModelAndView display(HttpServletRequest request, HttpServletResponse response) throws Exception {

        final Map<String, Object> model = new HashMap<String, Object>();
        model.put("someVariable", "Hello, MVC world.");
        return new ModelAndView("rootPage", model);
    }
}

Donc, disons que mon application fonctionne sur http://localhost:8080/app/, je veux que l'URL exacte à exécuter la méthode display. Je ne veux pas taper quoi que ce soit après /app/. En fait, certaines choses après /app/ sont mappés à d'autres contrôleurs, et que tous fonctionne très bien (et ils doivent continuer à travailler).

Ce qui me manque ici? Pourquoi n'est-ce pas tout simplement de travailler? Si j'utilise le même url-pattern de carte ordinaire Servlet exemple, il fonctionne très bien et j'arrive à la doGet méthode, mais avec Spring MVC me semble manquer de certains particulier de la magie noire pour obtenir que cela fonctionne.

OriginalL'auteur pbean | 2012-08-30