您的位置:首页 > 编程语言 > Java开发

springMVC custom PrefixArgumentResolver

2014-02-14 17:22 211 查看
public class PrefixArgumentResolver implements HandlerMethodArgumentResolver{ //WebArgumentResolver{

    @Override

    public boolean supportsParameter(MethodParameter mp) {

        return mp.hasParameterAnnotation(ReqParamPrefix.class) && !Collection.class.isAssignableFrom(mp.getParameterType());

    }

    @Override

    public Object resolveArgument(MethodParameter mp, ModelAndViewContainer mavc, NativeWebRequest req, WebDataBinderFactory bf) throws Exception {

        Object target = mp.getParameterType().newInstance();

        String prefix = mp.getParameterAnnotation(ReqParamPrefix.class).value(), separator = ".";

        MutablePropertyValues pvs = new ServletRequestParameterPropertyValues(req.getNativeRequest(ServletRequest.class), prefix, separator);

        WebDataBinder binder = new WebDataBinder(target);

        binder.bind(pvs);

        return target;

    }

    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  springmvc