SpringMVC RequestMapping:将 .xml 添加到 xml 响应的控制器路径
SpringMVC RequestMapping: Adding .xml to controller path for xml response
/pets 产生 json 响应。我想使用 /pets.xml 来产生 xml 响应,同时在控制器上维护 @RequestMapping("pets") 。我可以使用
@RequestMapping("/index")
@RequestMapping("/index.xml")
作为解决方法,但这不是我要找的。
@RestController
@RequestMapping("pets")
class PetController {
/*code*/
@RequestMapping(produces = arrayOf("application/json"))
fun findPetsJson(): List<PetDto> {
return petService.findAll()
}
// this results in /pets/.xml for the xml response. I'm aiming for /pets.xml
@RequestMapping(".xml", produces = arrayOf("application/xml"))
fun findPetsXml(): List<PetDto> {
return petService.findAll()
}
}
一个功能就够了。您只需要向它添加 arrayOf("application/json", "application/xml) 它就会同时产生两者(即使您删除它,它实际上也会产生两者,但它是这样明确的。
@RestController
@RequestMapping("pets")
class PetController {
/*code*/
@RequestMapping(produces = arrayOf("application/json", "application/xml), method = RequestMethod.GET)
fun findPetsJson(): List<PetDto> {
return petService.findAll()
}
}
此代码允许在 /pets.json 和 /pets.xml
处进行询问
默认情况下,Spring MVC RequestMappingHandlerMapping
将为您的 @RequestMapping
注释方法(或 类)添加多个映射。它将在配置的旁边添加一个以 .*
结尾的,这样它也将匹配扩展名。
因此在您的情况下,/pets.xml
已被默认创建的 /pets.*
映射支持。您的 produces
现在仅根据 Accept
请求 header 限制接受请求。
默认情况下,文件扩展名优先于 Content-Type
header。
/pets 产生 json 响应。我想使用 /pets.xml 来产生 xml 响应,同时在控制器上维护 @RequestMapping("pets") 。我可以使用
@RequestMapping("/index")
@RequestMapping("/index.xml")
作为解决方法,但这不是我要找的。
@RestController
@RequestMapping("pets")
class PetController {
/*code*/
@RequestMapping(produces = arrayOf("application/json"))
fun findPetsJson(): List<PetDto> {
return petService.findAll()
}
// this results in /pets/.xml for the xml response. I'm aiming for /pets.xml
@RequestMapping(".xml", produces = arrayOf("application/xml"))
fun findPetsXml(): List<PetDto> {
return petService.findAll()
}
}
一个功能就够了。您只需要向它添加 arrayOf("application/json", "application/xml) 它就会同时产生两者(即使您删除它,它实际上也会产生两者,但它是这样明确的。
@RestController
@RequestMapping("pets")
class PetController {
/*code*/
@RequestMapping(produces = arrayOf("application/json", "application/xml), method = RequestMethod.GET)
fun findPetsJson(): List<PetDto> {
return petService.findAll()
}
}
此代码允许在 /pets.json 和 /pets.xml
处进行询问默认情况下,Spring MVC RequestMappingHandlerMapping
将为您的 @RequestMapping
注释方法(或 类)添加多个映射。它将在配置的旁边添加一个以 .*
结尾的,这样它也将匹配扩展名。
因此在您的情况下,/pets.xml
已被默认创建的 /pets.*
映射支持。您的 produces
现在仅根据 Accept
请求 header 限制接受请求。
默认情况下,文件扩展名优先于 Content-Type
header。