Existem muitos artigos sobre o uso da configuração do SpringMVC, mas muitos não são claramente descritos. Aqui, apresentamos principalmente o uso de itens de configuração comumente usados e suas classes de análise. Existem duas maneiras de processar o conteúdo no SpringMVC, um é conversor e o outro é o ViewResolver. Ambos podem lidar com os formatos de conteúdo JSON, XML e FORM.
<?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.springframework.org/schema/p" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: util = "http://www.springframework.org/schema/util" xmlns: c = "httringframework.org/schema/util" xmlns: c = "httringframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://wwwwwww.springframework.orgumhema 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.xsd"> <!-- If the configuration is Utilizado no controlador, a configuração precisa ser carregada, porque geralmente essa configuração é carregada pelo DispatchServlet e não está no mesmo contexto da classe de escuta da primavera. Se você quiser saber o motivo, consulte http://blog.csdn.net/strivezxq/article/details/43795081 Este artigo analisa o processo de inicialização da primavera em detalhes-> <Context: ANSTROPLETRADOR LOCALIZADOR = "Classpath: AppOnTeies"/> <! @Controller use-default-filters = "false", você pode definir quais comentários são digitalizados apenas. Geralmente, a configuração do Springmvc carrega apenas os dois comentários a seguir-> <Contexto: componente-Scan Base-Package = "your.base.package" use-default-filters = "false"> <contexto: incluir-filter type = "annotation" Expression = "org.springframe.streeType.Controlller"/> <contextion " Expression = "org.springframework.web.bind.annotation.controlleradvice"/> </context: component-scan> <!-<Contexto: Anotação de componente-config = "True"> já contém a função do contexto: Anotation-Config, portanto, não há necessidade de confundir este contexto, o que é um dos nitros, que não é necessário, não é necessário, de maneira que não seja a necessidade, que não é possível, não é necessário, não é necessário, não é necessário, não é necessário que a fig. and @Autowired, as well as JSR 250's @PostConstruct, @PreDestroy and @Resource (if available), JAX-WS's @WebServiceRef (if available), EJB3's @EJB (if available), and JPA's @PersistenceContext and @PersistenceUnit (if available) --> <context:annotation-config /> <!--It will define um org.springframework.web.servlet.resource.DefaultServLethttPrequestHandler no contexto da MVC da primavera. Ele exibirá o URL que entra no DispatcheserServlet como um inspetor. Se for constatado que é um recurso estático, a solicitação será transferida para o servlet padrão do servidor de aplicativos da Web. Se não for uma solicitação de recurso estático, o DispatcheServlet continuará a processar. O nome padrão do servlet de um servidor de aplicativos da Web é "padrão"; portanto, o padrão de letra de mão pode encontrá -lo. Se o nome padrão do servlet de todos os seus servidores de aplicativos da Web não for "padrão", você precisará exibir o especificado através do atributo de nome de servêtera padrão: <mvc: padrão-servlet-handler de servlet-name). <Veut-Name> padrão </servlet-name> 3. <url-tattern>*. jpg </url-tattern> 4. <Veut-name> padrão </servlet-name> 11. <url-pattern>*. css org.springframework.web.servlet.resource.resourcehttprequestHandler <bean id = "ResourceHttPrequestHandler"> <Nome da propriedade = "Localizações" Value = "Classpath:/meta-inf/Recursos/"> </"> </Bean> <Bean> MAIRME key = "/Resources/**"> ResourceHttPrequestHandler </POP> </sports> </Property> </bean> A seguinte implementação de tag-> <mvc: Recursos Mapping = "/Resources/**" Location = "/Recursos/"> </MVC: Recursos> <!-Register "Global" "intercetor. Cada inteceptor deve implementar o org.springframework.web.servlet.handlerIntercept ou org.springframework.web.context.request.webrequestIntercept interface-> <mvc: interceptores> <mvc: /interceptor> <mvc: mapping Path = path="/css/**" /> <mvc:exclude-mapping path="/js/**" /> <mvc:exclude-mapping path="/images/**" /> <bean /> </mvc:interceptor> </mvc:interceptors> <!-- Turns on support for mapping requests to Spring MVC @Controller methods Also registers default Formatters and Validators for use across Todas as @Controllers Configuration Parsing Class: org.springframework.web.servlet.config.annotationDrivenBeanDefinitionParser Configuração de conteúdo-negotação-anager pode definir o tipo de conteúdo de parâmetros de URL, e o tipo de conteúdo padrão pode ser definido <Bean = "ContentNegoTiationman P: favorparameter = "true" p: parametername = "format" p: ignoreAccepTheader = "true" p: defaultContentType = "Application/json"> <nome da propriedade = "MediaTypes"> <ports> <pp Key = "JSON"> Aplicativo/JSON </prop> <prilpt = "xml>" xml> " < /bean>-> <mvc: conteúdo acionado por anotação negotação-anager = "ContentNegoTiationManagerFactoryBean"> <MVC: Message-Converters> <ref bean = "stringhttpmessageconverter" /> <reei "JSOHTALHTTPMENTTTTERTERTERTERTER" /> </mvc:message-converters> </mvc:annotation-driven> <!-- Content Management Factory --> <bean p:favorPathExtension="false" p:favorParameter="true" p:parameterName="format" p:ignoreAcceptHeader="true" p:defaultContentType="application/json"> <property name="mediaTypes"> <props> <prop key = "JSON"> APLICAÇÃO/JSON </PP> <props key = "xml"> Application/xml </pup> </props> </propriedade> </bean> <!- Content Parser, você pode configurar o tipo de parâmetro de retorno por p: parametername = "format" e configurar o tipo de conteúdo de default até o conteúdo P: P: C: QualityValue = "0,5" pode definir a prioridade do tipo de conteúdo. Se MVC: Método de anotação e anotação (@Requestbody), a seguinte configuração não é efetiva-> <Bean> <propriedade name = "ContentNegotiationManager" ref = "ContentNegoTiationManagerFactoryBean"> </oiltering> <Nome da propriedade "" Resultviews "> <list> <Bean> <Bean> Nome =" Nome = "Model)" Model) "Nome =" defaultViews "> <list> <Bean> <Bean> <Nome =" Nome = " name = "ExtraCtValueFromsingleKeyModel" value = "true"/> </bean> <Bean> <construtor-arg ref = "JAXB2MARSHALLER"/> <names name = "contenttype" value = "Application/xml"/> </bean> </list> </propriedades> <!-<Nome = "Name =" " <!-XML View usando um JAXB Marshaller-> <Bean id = "JAXB2MARSHALLER"> <Propriedade name = "MarshallerProperties"> <pap> <Entrada key = "Jaxb.formatted.output"> <Value Type = "Boolean> </value </encertted- key = JAX"> JAX. <propriedade name = "packAgestoscan"> <list> <valor> com.api.domain </alue> <value> com.api.web.controller.vo </value> </list> </property> </bean> <bean id = "jstlviewResolver" <nome do nome "names) value = "org.springframework.web.servlet.view.jstlview" /> <propriedade name = "prefix" value = " /views /" /> <names name = "sufix" value = "" /> <names name = "requestcontextTtrribute" = "rc" /> < /bEAN> <! O padrão é 1.0. The higher the priority, the higher the priority--> <bean id="stringHttpMessageConverter" > <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <bean id = "JSONHTTPMESSAGECONVERTER" /> <bean id = "marshallinghttpMessAgeconverter"> <construtor-arg ref = "Jaxb2Marshaller" /> <!-<Nome da propriedade "SupportedMediaTes" = "Application /xml"> < />- C: TIPO = "APLICAÇÃO" C: SUBTYPE = "XML" C: QualityValue = "0.5"/> </util: list> </Property> </i Bean>
Springmvc retorna as etapas de configuração do JSON da seguinte forma:
1. Adicione o pacote Jackson.jar
2. Adicione o seguinte código ao arquivo de configuração ApplicationContext.xml
<!-Passando retorna json-> <!-<! <Value> text/html; charset = utf-8 </value> </list> </propriedade> </bean>
3. Adicione o seguinte código ao controlador
@RequestMapping (value = "/chinês/listtree", método = requestMethod.post) @ResponseBody Public List GetListChinese (Model Model) {list <suser> list = (List <CineSecategory>) Commonmgr.find ("do usuário"); lista de retorno; }O valor de retorno pode ser lista ou tipo de mapa
Resumir
O exposto acima é todo o conteúdo deste artigo sobre as classes de configurações e análises comumente usadas da primavera. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a este site:
Explicação detalhada do código para injetar valor de atributo usando arquivos de configuração e @value na primavera
Análise do problema de digitalizar vários pacotes na configuração da primavera
Explicação detalhada do ciclo de vida do uso da configuração da primavera
Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!