理卖做各视频网站的会员,女人网站源码,个人域名可以做KTV网站吗,电影网站排名怎么做spring内容协商管理1.简介 使用BeanNameViewResolver完成的工作就是#xff0c;我们刚刚在Spring上下文中创建了多个bean视图以生成预期的输出。 Spring很快引入了内容协商策略 #xff0c;该策略可以使用传统的RESTful ResponseBody方法和HTTP消息转换器#xff0c;以JSON或… spring内容协商管理 1.简介 使用BeanNameViewResolver完成的工作就是我们刚刚在Spring上下文中创建了多个bean视图以生成预期的输出。 Spring很快引入了内容协商策略 该策略可以使用传统的RESTful ResponseBody方法和HTTP消息转换器以JSON或XML返回所需的输出以及该配置提供的一些灵活性和动态性。 通常我们需要为控制器返回的相同数据提供多种表示形式或视图。 通过Spring的内容协商非常优雅地实现了这一目标。 2.实施 为了快速开始实施首先创建一个新的maven项目。 单击此处获得有关在Eclipse中创建新的Maven项目的帮助 现在将所需的依赖项添加到pom.xml文件中。 pom.xml !-- Spring dependencies --
dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion4.2.1.RELEASE/version
/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion4.2.1.RELEASE/version
/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion4.2.1.RELEASE/version
/dependencydependencygroupIdjavax.xml.bind/groupIdartifactIdjaxb-api/artifactIdversion2.2.6/version
/dependency
dependencygroupIdjavax.xml/groupIdartifactIdjaxb-impl/artifactIdversion2.1/version
/dependency!-- Jackson JSON Processor --
dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.4.1/version
/dependency 打开web.xml并确保已完成正确的配置。 web.xml ?xml version1.0 encodingISO-8859-1?
web-app xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlnshttp://java.sun.com/xml/ns/javaeexsi:schemaLocationhttp://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsdidWebApp_ID version2.5display-nameSpringMVCWithContentNegotiation/display-nameservletservlet-namemvc-dispatcher/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classload-on-startup1/load-on-startup/servletservlet-mappingservlet-namemvc-dispatcher/servlet-nameurl-pattern/*/url-pattern/servlet-mapping/web-app 创建一个新的上下文文件 名称为servlet name -servlet.xml 该文件必须是mvc-dispatcher-servlet.xml并包含以下内容。 mvc-dispatcher-servlet.xml beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:mvchttp://www.springframework.org/schema/mvc xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsdmvc:annotation-drivencontent-negotiation-managercontentNegotiationManagermvc:path-matching registered-suffixes-onlytrue //mvc:annotation-drivencontext:component-scan base-packagecom.jcombat.controller /!-- To disable path extension check in the path variable of URI --bean idcontentNegotiationManagerclassorg.springframework.web.accept.ContentNegotiationManagerFactoryBeanproperty namefavorPathExtension valuetrue /property nameignoreAcceptHeader valuetrue /property nameuseJaf valuefalse/property namedefaultContentType valueapplication/json /property namemediaTypesmapentry keyjson valueapplication/json /entry keyxml valueapplication/xml //map/property/bean!-- For Other media types --bean idjspViewResolverclassorg.springframework.web.servlet.view.InternalResourceViewResolverproperty nameprefix value/WEB-INF/jsp/ /property namesuffix value.jsp //bean/beans 请注意组件扫描仅应用于com.jcombat.controller软件包因此Spring可以自动检测应用程序控制器。 发出HTTP请求时我们可以通过设置Accept标头属性来指定想要的响应类型。 但是由于浏览器使用Accept标头的工作方式不正确我们通常更喜欢在基于Spring的Web应用程序中忽略Accept标头该Web应用程序以HTML以外的格式返回输出。 使用Java Activation Framework JAF我们不需要显式指定媒体类型映射而是可以由JAF隐式完成。 要使用JAF我们可能需要添加额外的activation.jar依赖项。 可能我们只想支持两种输出格式即JSON和XML因此我们选择不使用它而是明确指定媒体类型映射。 现在是时候编写控制器了应该像下面指定的那样。 EmployeeController.java package com.jcombat.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;import com.jcombat.bean.Employee;Controller
public class EmployeeController {RequestMapping(value /employeeData, method RequestMethod.GET, produces{application/xml, application/json})public ResponseBody Employee getEmployee() {Employee employee new Employee();employee.setEmailId(abcgmail.com);employee.setEmpId(123);employee.setName(Ajit);return employee;}
}3.有用的链接 Spring MVC与Maven集成 在Spring中配置多个View解析器 4.运行应用程序 当我们运行该应用程序时将看到以下内容。 JSON输出 XML输出 5.下载源代码 下载源代码 翻译自: https://www.javacodegeeks.com/2016/05/content-negotiation-spring-framework.htmlspring内容协商管理