2010-02-03 4 views
1

J'ai une configuration d'application de base Java EE Spring (MVC) qui affiche une page d'accueil avec un contenu dynamique. Je suis complètement nouveau au printemps et je suis confus comment procéder à ce stade et ajouter plus de pages à mon application. Dois-je créer un nouveau contrôleur pour chaque URL de mon site? En ce moment, je le mappage suivant dans mon fichier ..-servlet.xml:Spring MVC question de configuration

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 
    <property name="mappings"> 
    <value> 
     /index.html=homeController 
    </value> 
    </property> 
</bean> 

Donc, si j'ai maintenant une nouvelle page à/connexion, que j'ajouter un mappage à /login/index.html? Je suis encore plus confus parce que j'essaie d'intégrer Spring-sécurité pour gérer la page de connexion ...

Répondre

0

Si vous utilisez la sécurité de printemps, vous n'avez pas besoin d'un contrôleur pour afficher le formulaire de connexion. Vous pouvez utiliser n'importe quelle page jsp à cette fin et comme Spring l'envoie à j_spring_secutity_check, vous n'avez pas besoin d'un contrôleur pour le gérer aussi. Vérifiez dans la documentation du printemps comment vous pouvez ajouter plusieurs méthodes dans le contrôleur. Vous devrez peut-être utiliser le type de configuration beanNmaeMapping. De plus, le meilleur moyen est maintenant utilise config à base d'annotation qui vous aide à configurer tout POJO en tant que contrôleur avec l'annotation @Controller

0

Vous pouvez utiliser quelque chose comme:

<bean id="viewResolver" 
    class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" 
     value="org.springframework.web.servlet.view.JstlView" /> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

<bean id="handlerMapping" 
    class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 

    <property name="mappings"> 
     <props> 
      <prop key="/vehicleSearch">vehicleSearchController</prop> 
     </props> 
    </property> 
</bean> 

S'il y avait un fichier/WEB-INF/jsp/vehicleSearch.jsp il serait mappé au vehicleSearchController. Dans ce cas, les fichiers JSP sont utilisés pour la vue, mais vous pouvez l'adapter à votre technologie de vue.

En le configurant de cette façon, vous devrez toujours écrire un mapping pour chaque fichier. Une meilleure façon (comme Teja l'a suggéré) est probablement d'annoter les mappages dans votre contrôleur et de supprimer la configuration XML.

par exemple.

@Controller 
@RequestMapping("/vehicleSearch") 
public class VehicleSearchController { 
2

Je prendrais un coup d'œil à Controllers annotés:

Exemple:

@Controller 
public class TestController { 

    @RequestMapping(value="/login/index.html") 
    public String login() { 
     return "login"; 
    } 

    @RequestMapping(value="/somethingelse/index.html") 
    public String login() { 
     return "somethingelse"; 
    } 
} 

Lorsque vous définissez u p votre View Resolver, les chaînes renvoyées correspondraient à une page littérale, c'est-à-dire que quelque chose pourrait être dirigé vers /jsp/somethingelse.jsp si c'est ainsi que vous avez configuré le résolveur dans votre config Spring. Astuce ... vous devez rechercher les annotations sur le fil automatique. Spring-Security est géré d'une manière un peu similaire, mais n'a rien à voir avec Spring MVC par exemple. Si cela est fait correctement, la seule ressource que vous devez fournir pour configurer la sécurité est la page de connexion simple que vous devez configurer dans votre configuration Spring. Consultez cet exemple de sécurité:

Questions connexes