Le contrôleur de SpringMVC est utilisé pour gérer les demandes des utilisateurs. Les contrôleurs sont équivalents à l'action dans Struts1. Leur mécanisme de mise en œuvre et leurs principes de fonctionnement sont similaires.
Le contrôleur est une interface, qui hérite généralement directement de l'abstrcatController et implémente la méthode handlerequestsinternal. La méthode HandleRequestSinteral est équivalente à la méthode d'exécution de Struts1
import org.springframework.web.servlet.modelandView; import org.springframework.web.servlet.mvc.abstractController; public class CatController étend AbstractController {private icatService CatService; // seter et getter a légèrement protégé ModeLandView HandlerequestSinternal (httpServLetRequestRequest, httpservletResponse réponse) lève une exception {String action = request.getParameter ("Action"); if ("list" .equal Exception {list <at> catlist = catService.Listcat (); request.setAttribute ("catlist", catlist); return new ModelAndView ("cat / listcat");}}SpringMVC n'a pas d'encapsulation de données intégrée, les développeurs peuvent encapsuler le code de conversion de données eux-mêmes
SpringMVC est unique dans le traitement de la couche de vue. HandlerequestSinteral renvoie un objet ModelAndView, qui peut être considéré comme l'encapsulation des objets JSP. ModeLandiView accepte directement le chemin d'accès à la page JSP. Par exemple, le paramètre "cat / listcat" n'est qu'une partie du chemin JSP. Le chemin complet réel est "Web-Inf / JSP / Cat / Catlist.jsp". La pièce avant et après le chemin est configurée dans le fichier de configuration.
En plus de configurer des chemins JSP, ModelandView peut également transmettre directement les objets du modèle à la couche de vue sans les mettre à l'avance à la demande, tels que NewmodelandView ("Cat / listCat", "Cat", CAT). Si plusieurs paramètres sont passés, vous pouvez utiliser la carte, comme
Map map = newhashmap (); map.put ("chat", chat); map.put ("catlist", catlist); retourner nouveau ModelAndView ("cat / listcat", map);Généralement, un fichier XML indépendant tel que Spring-action.xml est utilisé pour configurer spécifiquement les composants Web.
<? xml version = "1.0" Encoding = "UTF-8"?> <! DCTYPEBEANS public "- // printemps // dtd bean // en" "http://www.springframework.org/dtd/spring-Beans.dtd"> <Beans> <Bean Id = "ViewResolver"> <Propriété = "PREFIX"> <value> / web-inf / jsp / </value> <! - jsp préfixe -> </ propriété> <propriété name = "suffixe"> <value> .jsp </value> <! - jsp suffix -> </ property> <! - Configuration Url Mapping -> <bean id = "urlhandlermapping"> <propriété name = "mappings"> <props> "Cat.mvc" -> <prop key = "cat.mvc"> catController </prop> <props> </ propriété> </ bean> <bean id = "CatController"> <propriété name = "CatService" Ref = "CatService"> </ Property <param-name> contextConfigLocation </ param-name> <param-value> /web-inf/classes/applicationContext.xml, /web-inf/classes/spring-action.xml </ param-value> </ Contexte-Dener-Class> org.springframework.web.context.contextloaderListener </ auteur-class> </duner> <Servlet> <! - Spring Distributeur -> <Servlet-Name> Spring </vrevert-Name> <Servlet-Class> org.springframework.web.servlet.dispatcher </ servlet-class> <param-name> contextConfigLocation </ param-name> <param-value> /web-inf/classes/spring-action.xml </ param-value> </ init-param> <ony-on-startup> 1 </ load-on-startup> <! - Charging at startup -> </servlet> <servlet> <servlet-name> <URL> *. MVC </URL> </ servlet-mapping>
Si un contrôleur souhaite gérer plusieurs logiques métier, vous pouvez utiliser MultiActionController, ce qui est équivalent à DispatchAction dans Struts 1. Il peut distribuer différentes demandes à différentes méthodes en fonction d'un certain paramètre.
import org.springframework.web.servlet.mvc.Multiaction.MultiactionController; public class CatController étend AbstractController {private icatService CatService; // setter et Getter ModelSerpleTrowView Add (httpservletRequestrequest, HttpservletReSponse Ajouter) ModelAndView ("Cat / addCat");} List ModelAndView protégé (HttpServLetRequestRequest, HttpservletResponse Response) lève une exception {list <cat> catlist = catService.Listcat (); request.SetAttribute ("CatList", CatList); Return New ModelView ("Cat / listCat");}}Configurer sur Spring-action.xml
<bean id = "ParameThoDreSolver"> <propriété name = "paramname"> <value> Action </value> <! - Configurer les paramètres de distribution -> </ propriété> <propriété name = "DefaultMethodName"> <value> list </ value> <! - Configure les méthodes d'exécution par défaut -> </ / Propriété> </pan> <id) key = "cat.mvc"> catController </prop> <! - L'accès à "cat.mvc" "sera remis à CatController pour le traitement -> <Prop Key =" CatMulti.mvc "> CatMultiController </prop> <! - Lorsque vous accédez à" Catmulti.mvc ", vous le laissera pour CatMultiConCon </ bean> <bean id = "catController"> <propriété name = "CatService" ref = "CatService"> </ Property> </Eb> <bean id = "CatMultiController"> <propriété name = "CatService" Ref = "CatService"> </ Property> </ban>
Résumer
Ce qui précède est toute l'explication détaillée du code du module MVC au printemps, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler.