org.yelong.support.spring.mvc.HandlerResponseWay Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yelong-support Show documentation
Show all versions of yelong-support Show documentation
对各种开源框架的包装、支持、拓展。这里也包含的yelong-core与orm框架的整合。
默认对所有依赖为 scope 为 provided 。您需要针对自己的需要进行再次依赖
/**
*
*/
package org.yelong.support.spring.mvc;
import java.lang.reflect.Method;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.method.HandlerMethod;
/**
* 处理器响应方式
*
* @author PengFei
*/
public enum HandlerResponseWay {
/** json格式 */
JSON,
/** 视图 */
MODEL_AND_VIEW;
/**
* 解析处理器响应方式
*
* 满足以下条件视为JSON格式。非JSON均视为视图
* 1、处理器方法存在{@link ResponseBody}注解
* 2、处理器方法类上存在{@link ResponseBody}注解
* 3、响应结果为{@link ResponseEntity}
*
* @param handlerMethod 处理器方法
* @return 处理器方法的相应方式
*/
public static HandlerResponseWay handlerResponseWayResolver(HandlerMethod handlerMethod) {
Method method = handlerMethod.getMethod();
HandlerResponseWay handlerResponseWay = null;
if (method.isAnnotationPresent(ResponseBody.class)) {
handlerResponseWay = JSON;
} else if (method.getDeclaringClass().isAnnotationPresent(ResponseBody.class)) {
handlerResponseWay = JSON;
} else if (method.getDeclaringClass().isAnnotationPresent(RestController.class)) {
handlerResponseWay = JSON;
} else if (method.getReturnType() == ResponseEntity.class) {
handlerResponseWay = JSON;
;
} else {
handlerResponseWay = MODEL_AND_VIEW;
}
return handlerResponseWay;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy