我正在使用spring mvc,hateoas.我有一个看起来像的控制器动作
@RequestMapping(value = "/images/{userId}/{publicUrl}/{fileName:.+}",method = RequestMethod.GET)
public void image(@PathVariable Integer userId,@PathVariable String publicUrl,@PathVariable String fileName,HttpServletRequest request,HttpServletResponse response) throws Exception {
try(HellodoxAws aws = haws;){
.....
.....
response.setContentType(image.getobjectMetadata().getContentType());
response.setHeader("ETag",image.getobjectMetadata().getETag());
response.setHeader("Cache-Control",image.getobjectMetadata().getCacheControl());
response.setHeader("Last-Modified",image.getobjectMetadata().getLastModified().toString());
IoUtils.copy(image.getobjectContent(),response.getoutputStream());
}catch (Exception e) {
if(e instanceof AmazonS3Exception){
int statusCode = ((AmazonS3Exception) e).getStatusCode();
//System.out.println("Status Code : "+statusCode);
response.setContentType("image/jpeg");
if(statusCode==HttpStatus.NOT_MODIFIED.value()){
response.setHeader("ETag",((AmazonS3Exception) e).getAdditionalDetails().get("ETag"));
response.setHeader("Cache-Control",((AmazonS3Exception) e).getAdditionalDetails().get("Cache-Control"));
response.setHeader("Last-Modified",((AmazonS3Exception) e).getAdditionalDetails().get("Last-Modified"));
}
response.setStatus(statusCode);
}
}
}
这个动作完美无缺.
现在我想要的是发布url来访问每个配置文件的图像. JSON格式是这样的
{
"profileId" : 342308,"userId" : 342308,"firstname" : "Henry","lastname" : "SEOl","title" : "Mr.","largeImageUrl" : "https://
我想添加该链接来代替“largeImageUrl”和“thumbImageUrl”的值.
最佳答案
你可以使用
public static ControllerLinkBuilder linkTo(Class> controller,Method method,Object... parameters) {
所以应该是这样的
Link link = linkTo(
ImageController.class,ImageController.class
.getmethod("image",Integer.class,String.class,HttpServletRequest.class,HttpServletResponse.class),1,"url","file"
).withRel("image");
public static ControllerLinkBuilder linkTo(Method method,Object... parameters) {
但它有一个bug,因此它不起作用
原文地址:https://www.jb51.cc/spring/431957.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。