org.springframework.web.bind.annotation.ResponseStatus#code ( )源码实例Demo

下面列出了org.springframework.web.bind.annotation.ResponseStatus#code ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。


@Override
protected int parseStatusCode(Method method) {
    ResponseStatus responseStatusAnno = AnnotatedElementUtils.getMergedAnnotation(method, ResponseStatus.class);
    if (responseStatusAnno != null)
    {
        responseStatusAnno = AnnotatedElementUtils.getMergedAnnotation(method.getDeclaringClass(), ResponseStatus.class);
    }
    if (responseStatusAnno != null)
    {
        return responseStatusAnno.code() != null ? responseStatusAnno.code().value() : responseStatusAnno.value().value();
    }
    return 200;
}
 

@Override
@Nullable
protected HttpStatus determineStatus(Throwable ex) {
	HttpStatus status = super.determineStatus(ex);
	if (status == null) {
		ResponseStatus ann = AnnotatedElementUtils.findMergedAnnotation(ex.getClass(), ResponseStatus.class);
		if (ann != null) {
			status = ann.code();
		}
	}
	return status;
}
 

private void evaluateResponseStatus() {
	ResponseStatus annotation = getMethodAnnotation(ResponseStatus.class);
	if (annotation == null) {
		annotation = AnnotatedElementUtils.findMergedAnnotation(getBeanType(), ResponseStatus.class);
	}
	if (annotation != null) {
		this.responseStatus = annotation.code();
		this.responseStatusReason = annotation.reason();
	}
}
 

@Override
@Nullable
protected HttpStatus determineStatus(Throwable ex) {
	HttpStatus status = super.determineStatus(ex);
	if (status == null) {
		ResponseStatus ann = AnnotatedElementUtils.findMergedAnnotation(ex.getClass(), ResponseStatus.class);
		if (ann != null) {
			status = ann.code();
		}
	}
	return status;
}
 

private void evaluateResponseStatus() {
	ResponseStatus annotation = getMethodAnnotation(ResponseStatus.class);
	if (annotation == null) {
		annotation = AnnotatedElementUtils.findMergedAnnotation(getBeanType(), ResponseStatus.class);
	}
	if (annotation != null) {
		this.responseStatus = annotation.code();
		this.responseStatusReason = annotation.reason();
	}
}
 
源代码6 项目: lams   文件: HandlerMethod.java

private void evaluateResponseStatus() {
	ResponseStatus annotation = getMethodAnnotation(ResponseStatus.class);
	if (annotation == null) {
		annotation = AnnotatedElementUtils.findMergedAnnotation(getBeanType(), ResponseStatus.class);
	}
	if (annotation != null) {
		this.responseStatus = annotation.code();
		this.responseStatusReason = annotation.reason();
	}
}
 

private void initResponseStatus() {
	ResponseStatus annotation = getMethodAnnotation(ResponseStatus.class);
	if (annotation != null) {
		this.responseStatus = annotation.code();
		this.responseReason = annotation.reason();
	}
}
 

@SuppressWarnings("unchecked")
private ModelAndView getModelAndView(Method handlerMethod, Object returnValue, ServletWebRequest webRequest)
		throws Exception {

	ResponseStatus responseStatus = AnnotatedElementUtils.findMergedAnnotation(handlerMethod, ResponseStatus.class);
	if (responseStatus != null) {
		HttpStatus statusCode = responseStatus.code();
		String reason = responseStatus.reason();
		if (!StringUtils.hasText(reason)) {
			webRequest.getResponse().setStatus(statusCode.value());
		}
		else {
			webRequest.getResponse().sendError(statusCode.value(), reason);
		}
	}

	if (returnValue != null && AnnotationUtils.findAnnotation(handlerMethod, ResponseBody.class) != null) {
		return handleResponseBody(returnValue, webRequest);
	}

	if (returnValue instanceof ModelAndView) {
		return (ModelAndView) returnValue;
	}
	else if (returnValue instanceof Model) {
		return new ModelAndView().addAllObjects(((Model) returnValue).asMap());
	}
	else if (returnValue instanceof Map) {
		return new ModelAndView().addAllObjects((Map<String, Object>) returnValue);
	}
	else if (returnValue instanceof View) {
		return new ModelAndView((View) returnValue);
	}
	else if (returnValue instanceof String) {
		return new ModelAndView((String) returnValue);
	}
	else if (returnValue == null) {
		return new ModelAndView();
	}
	else {
		throw new IllegalArgumentException("Invalid handler method return value: " + returnValue);
	}
}
 

@SuppressWarnings("unchecked")
private ModelAndView getModelAndView(Method handlerMethod, Object returnValue, ServletWebRequest webRequest)
		throws Exception {

	ResponseStatus responseStatus = AnnotatedElementUtils.findMergedAnnotation(handlerMethod, ResponseStatus.class);
	if (responseStatus != null) {
		HttpStatus statusCode = responseStatus.code();
		String reason = responseStatus.reason();
		if (!StringUtils.hasText(reason)) {
			webRequest.getResponse().setStatus(statusCode.value());
		}
		else {
			webRequest.getResponse().sendError(statusCode.value(), reason);
		}
	}

	if (returnValue != null && AnnotationUtils.findAnnotation(handlerMethod, ResponseBody.class) != null) {
		return handleResponseBody(returnValue, webRequest);
	}

	if (returnValue instanceof ModelAndView) {
		return (ModelAndView) returnValue;
	}
	else if (returnValue instanceof Model) {
		return new ModelAndView().addAllObjects(((Model) returnValue).asMap());
	}
	else if (returnValue instanceof Map) {
		return new ModelAndView().addAllObjects((Map<String, Object>) returnValue);
	}
	else if (returnValue instanceof View) {
		return new ModelAndView((View) returnValue);
	}
	else if (returnValue instanceof String) {
		return new ModelAndView((String) returnValue);
	}
	else if (returnValue == null) {
		return new ModelAndView();
	}
	else {
		throw new IllegalArgumentException("Invalid handler method return value: " + returnValue);
	}
}