java里spring自定义注解如何组合原有注解,如自定义@AjaxRequestMapping=@ResponseBody+@RequestMapping 10
看到@RestController=@Controller+@ResponseBody的效果,于是我写了一个自定义注解来组合,如下:@Target({ElementTyp...
看到@RestController=@Controller+@ResponseBody的效果,于是我写了一个自定义注解来组合,如下:
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping
@ResponseBody
public @interface AjaxRequestMapping {
String name() default "";
String[] value() default {};
RequestMethod[] method() default { RequestMethod.POST };
String[] params() default {};
String[] headers() default {};
String[] consumes() default {};
String[] produces() default { "application/json;charset=utf-8" };
}
希望效果是用:
@AjaxRequestMapping("upload/file")
来替代原本的
@ResponseBody
@RequestMapping(value = "upload/file", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
但是结果导致所有的请求都响应400异常,显然@AjaxRequestMapping的属性没有被@RequestMapping所获取。
请问大家,怎样才能起到@AjaxRequestMapping=@ResponseBody+@RequestMapping的效果? 展开
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping
@ResponseBody
public @interface AjaxRequestMapping {
String name() default "";
String[] value() default {};
RequestMethod[] method() default { RequestMethod.POST };
String[] params() default {};
String[] headers() default {};
String[] consumes() default {};
String[] produces() default { "application/json;charset=utf-8" };
}
希望效果是用:
@AjaxRequestMapping("upload/file")
来替代原本的
@ResponseBody
@RequestMapping(value = "upload/file", method = RequestMethod.POST, produces = "application/json;charset=utf-8")
但是结果导致所有的请求都响应400异常,显然@AjaxRequestMapping的属性没有被@RequestMapping所获取。
请问大家,怎样才能起到@AjaxRequestMapping=@ResponseBody+@RequestMapping的效果? 展开
3个回答
展开全部
@AliasFor(
annotation = RequestMapping.class
)
String[] value() default {};
用这种格式书写才能把值传递给@RequestMapping中去
annotation = RequestMapping.class
)
String[] value() default {};
用这种格式书写才能把值传递给@RequestMapping中去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请使用 @RestController + @GetMapping/@PostMappi
@RestControlle("/api/test")
class Api{
@GetMapping("/list")
Object list(@RequestParam("page")Integer page){
//TODO
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-09-02
展开全部
人家定义的注解时,是那样写的,,,,,,你可以自己修改注解,来实现。。。。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询