Il existe de nombreux articles sur l'utilisation de la configuration de SpringMVC, mais peu sont clairement décrits. Ici, nous introduisons principalement l'utilisation des éléments de configuration couramment utilisés et de ses classes d'analyse. Il existe deux façons de traiter le contenu dans SpringMVC, l'un est convertisseur et l'autre est ViewResolver. Les deux peuvent gérer les formats de contenu JSON, XML et formulaires.
<? xml version = "1.0" Encoding = "utf-8" standalone = "no"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: p = "http://www.springframe xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: util = "http://www.springframework.org/schema/util" xmlns: c = "http://www.springframeworkwork.org/ca/c "/www.springframeworkwork.orga/c "/c" XSI: ScheMalation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsdd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.2.xsd " Contrôleur, la configuration doit être chargée, car généralement cette configuration est chargée par DispatchServlet et n'est pas dans le même contexte que la classe d'écoute à ressort. Si vous souhaitez connaître la raison, veuillez consulter http://blog.csdn.net/strivezxq/article/details/43795081 Cet article analyse le processus d'initialisation de printemps en détail-> <contexte: propriété location de classe = "CLASSPATH: app.properties" /> <! et @Controller use-default-filters = "false", vous pouvez définir les commentaires uniquement analysés. Généralement, la configuration de Springmvc ne charge que les deux commentaires suivants-> <contexte: composant-scan basage-package = "your.base.package" use-default-filters = "false"> <context: include-filter type = "annotation" expression = "org.springframework.steretype.contreller" /> <contexte: include-filter type = "annotation" annotation " expression = "org.springframework.web.bind.annotation.ControllerAdvice" /> </ context: ComponentScan> <! - <context: Component-Scan Annotation-Config = "true"> Il contient déjà le fonction @Autowired, ainsi que @PostConstruct de JSR 250, @Predestroy et @Resource (si disponible), @WebServiceRef (si disponible), @EJB (si disponible) et JPA, @PerSistenceContex org.springframework.web.servlet.resource.defaultServletHttprequestHandler dans le contexte de Spring MVC. Il filtrera l'URL entrant dans le Dispatcherservlet comme un inspecteur. S'il est constaté qu'il s'agit d'une ressource statique, la demande sera transférée au servlet par défaut du serveur d'applications Web. S'il ne s'agit pas d'une demande de ressources statique, le Dispatcherservlet continuera de traiter. Le nom du servlet par défaut d'un serveur d'applications Web est "par défaut", donc defaultServLettTTPRequestHandler peut le trouver. Si le nom de servlet par défaut de tous vos serveurs d'applications Web n'est pas "par défaut", vous devez afficher le nom spécifié via l'attribut de nom de nom de divertissement: <MVC: par défaut-service-handler default-sert-name = "Le nom de servlet par défaut utilisé par le serveur Web" /> Tomcat, Jetty, Jboss, et Glassfish Nom que le nom est par défaut, EG: Web.xml 1. <Servlet-Name> Default </ Servlet-Name> 3. <Url-Pattern> *. JPG </url-Pattern> 4. </vrlet-mapping> 5. <Servlet-Mapping> 6. <Servlet-Name> Default </ Servlet-Name> 7. <Url-Pattern> *. Js </url-Pattern> 8. <Servlet-Name> Default </ serplet-name> 11. <Url-Pattern> *. CSS </url-Pattern> 12. </vrlett-mapping> Si le nom de SpringDefault-Server n'est pas configuré, le paramètre par défaut sera pris en charge et que les serveurs Web couramment utilisés sont déjà pris en charge -> <Mvc: la classe de défaut de service /> <! org.springframework.web.servlet.resource.resourcehttprequesthandler <bean id = "ResourceHttpRequestHandler"> <propriété name = "Locations" value = "classpath: / meta-inf / ressources /"> </ property> key = "/ ressources / **"> ResourceHttpRequestHandler </prop> </ props> </ propriété> </ bean> La balise d'implémentation de balise suivante-> <MVC: Ressources Mapping = "/ Resources / **" Location = "/ Resources /"> </ Mvc: Resources> <! - Registre "Global" Interceptor Beans pour appliquer à toutes les main de main enregistrée. Chaque Intececeptor doit implémenter l'org.springframework.web.servlet.handlerInterceptor ou org.springframework.web.context.request.webrequestInterceptor interface -> <mvc: interceptors> <mvc: interceptor> <mvc: mapping path = "/*" /> <mv: excré-mappage) /> <mvc: exclure le path-mappage = "/ js / **" /> <mvc: exclure mappant path = "/ images / **" /> <ean /> </ mvc: les demandes d'interceptor> </ mvc: intercepteurs> <! - Affiche la prise en charge de la cartographie pour la configuration de Spring MVC @ConTroller des méthodes de configuration également des formulaires par défaut et des valorisateurs pour une utilisation à travers les formes de configuration @ConTrollers Regurers Formatrels et vallidateurs pour les valeurs par défaut pour les formes par défaut et les valorisateurs pour les valeurs par défaut et les valorisateurs pour les valeurs par défaut pour les formes par défaut et les valorisateurs pour les valeurs par défaut et les valorisateurs pour les échanges pour les groupes de configat Classe: org.springframework.web.servlet.config.annotationDrivenBeAnDefinitionParser Configuration Content-negotiation-Anager peut définir des paramètres de type de contenu dans l'URL, et le type de contenu par défaut peut être défini <bean id = "ContentNegotiationManagerfactoryBean" P: favoripathextension = "false" p: favartater = "true" " P: Parametername = "Format" P: ignoreacceptheader = "true" p: defaultContentType = "Application / JSON"> <propriété name = "mediaTypes"> <pops> <prop key = "JSON"> application / json </ prop> <prop key = "xml"> application / bean> <MVC: ANNOTATION-ANNÉRÉ CONTENU-NEGOTIATION-ANAGER = "ContentNegotiationManagerFactoryBean"> <MVC: Message-Converters> <Ref Bean = "StringHttpMessageConverter" /> <Ref Bean = "JSONHTTPMESSAGECONVERT </ mvc: Message-Converters> </ MVC: Annotation-Driven> <! - Content Management Factory -> <Bean P: favoriPathextension = "false" p: favoriParAmètre = "true" p: ParameterName = "format" p: racheacceptheader = "True" p: DefaultType = "application / json"> <propriété = " key = "json"> application / json </prop> <prop key = "xml"> application / xml </prop> </props> </ propriété> </ank> <! - Parser de contenu, vous pouvez configurer le type de paramètre de retour par p: parametername = "format" et configurer le type de contenu défaut via p: defaultContedType. C: QualityValue = "0,5" peut définir la priorité du type de contenu. Si MVC: Méthode annotation et annotation (@Requestbody), la configuration suivante n'est pas efficace -> <an Bean> <propriété name = "ContentNegotiationManager" Ref = "ContentnegotiationManagerFactoryBean"> </ Property> <Property Name = "DefaultViews"> <Sist> <Ean> <Property Name = "Modekeke name = "ExtractValueFromsingleKeyModel" value = "true" /> </ bean> <anEn> <constructor-arg ref = "jaxb2marshaller" /> <propriété name = "contentType" value = "application / xml" /> </ bean> </ list> </ / propriété> <! - <propriété name = "ignoreccceptheAdor" Vue xml à l'aide d'un Marshaller JAXB -> <bean id = "jaxb2marshaller"> <propriété name = "marshallerProperties"> <map> <entrée key = "jaxb.formatted.output"> <valeur = "boolean"> true </ value> </ entry> <entrée clé = "jaxb.encoding" value = "utf-8" /> </ map name = "packAgEstoscan"> <sist> <value> com.api.domain </value> <value> com.api.web.controller.vo </value> </ist> </ propriété> </ bean> <bean id = "jstlviewresolver"> <propriété name = "ordonnance" value = "2" /> <propriété name = "ViewClass" Value = "org.springframework.web.servlet.view.jstlview" /> <propriété name = "prefix" value = "/ vues /" /> <propriété name = "suffix" value = "" /> <propriété name = "requestContedAttribute" value = "rc" /> </ bean> <! - C: QualityValue = "0.5" Vous pouvez définir les types de contenu de contenu. La valeur par défaut est 1.0. Plus la priorité est élevée, plus la priorité est élevée -> <bean id = "StringHttpMessageConverter"> <propriété name = "SupportEdMediaTypes"> <Sist> <Value> Text / Plain; charSet = UTF-8 </value> <value> Text / Html; Charset = utf-8 </value> </sist> </premy> </bEAN> </Eb id = "JSONHTTPMESSAGECONverter" /> <bean id = "MarshallingHttpMessageConverter"> <Constructor-Arg Ref = "JAXB2MARSHALLER" /> <! - <propriété name = "PadredMediaTypes" Value = "Application / xml"> </ propriété> -> <propriété Name = "SupportEdMedEdIdAlTy" c: type = "application" c: sous-type = "xml" C: QualityValue = "0,5" /> </ util: list> </ propriété> </ank>
Springmvc renvoie les étapes de configuration JSON comme suit:
1. Ajouter le package Jackson.jar
2. Ajouter le code suivant au fichier de configuration ApplicationContext.xml
<! - Passing Returns JSON -> <! - <an Bean> -> <an Bean> <Property Name = "MessageConverters"> <sist> <Ref Bean = "MappingJackSonHttpMessageConverter" /> </Sist> </ Propriété> </EAN> <Bean Id = "MappingJackSonHTPMESSAGECONVERTER"> < <value> text / html; charset = utf-8 </value> </sist> </ propriété> </ban>
3. Ajouter le code suivant au contrôleur
@RequestMapping (value = "/ chinois / listTree", méthode = requestMethod.post) @ResponseBody public list getListChinese (modèle modèle) {list <user> list = (list <ChineseCategory>) CommonMgr.Find ("From User"); Liste de retour; }La valeur de retour peut être la liste ou le type de carte
Résumer
Ce qui précède est tout le contenu de cet article sur les configurations et les classes d'analyse couramment utilisées du printemps. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à ce site:
Explication détaillée du code pour injecter la valeur d'attribut à l'aide de fichiers de configuration et @Value à Spring
Analyse du problème de la numérisation de plusieurs packages dans la configuration de printemps
Explication détaillée du cycle de vie de l'utilisation de la configuration du printemps
S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!