All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.hiboot.mcn.autoconfigure.web.mvc.resolver.StringObjectMethodArgumentResolver Maven / Gradle / Ivy

package cn.hiboot.mcn.autoconfigure.web.mvc.resolver;

import cn.hiboot.mcn.core.util.JacksonUtils;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.ModelAndViewContainer;

/**
 * StringObjectMethodArgumentResolver
 *
 * @author DingHao
 * @since 2022/1/17 10:15
 */
public class StringObjectMethodArgumentResolver implements HandlerMethodArgumentResolver {

    @Override
    public boolean supportsParameter(MethodParameter parameter) {
        return parameter.hasParameterAnnotation(StrToObj.class) && parameter.getParameterType() != String.class;
    }

    @Override
    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
        HttpServletRequest request = webRequest.getNativeRequest(HttpServletRequest.class);
        if(request == null){
            return null;
        }
        return JacksonUtils.fromJson(request.getParameter(parameter.getParameterName()),parameter.getParameterType());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy