org.springframework.web.bind.support.WebArgumentResolver.resolveArgument()方法的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(12.3k)|赞(0)|评价(0)|浏览(186)

本文整理了Java中org.springframework.web.bind.support.WebArgumentResolver.resolveArgument()方法的一些代码示例,展示了WebArgumentResolver.resolveArgument()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WebArgumentResolver.resolveArgument()方法的具体详情如下:
包路径:org.springframework.web.bind.support.WebArgumentResolver
类名称:WebArgumentResolver
方法名:resolveArgument

WebArgumentResolver.resolveArgument介绍

[英]Resolve an argument for the given handler method parameter within the given web request.
[中]

代码示例

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Delegate to the {@link WebArgumentResolver} instance.
  3. * @throws IllegalStateException if the resolved value is not assignable
  4. * to the method parameter.
  5. */
  6. @Override
  7. @Nullable
  8. public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer,
  9. NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception {
  10. Class<?> paramType = parameter.getParameterType();
  11. Object result = this.adaptee.resolveArgument(parameter, webRequest);
  12. if (result == WebArgumentResolver.UNRESOLVED || !ClassUtils.isAssignableValue(paramType, result)) {
  13. throw new IllegalStateException(
  14. "Standard argument type [" + paramType.getName() + "] in method " + parameter.getMethod() +
  15. "resolved to incompatible value of type [" + (result != null ? result.getClass() : null) +
  16. "]. Consider declaring the argument type in a less specific fashion.");
  17. }
  18. return result;
  19. }

代码示例来源:origin: spring-projects/spring-framework

  1. /**
  2. * Actually resolve the value and check the resolved value is not
  3. * {@link WebArgumentResolver#UNRESOLVED} absorbing _any_ exceptions.
  4. */
  5. @Override
  6. public boolean supportsParameter(MethodParameter parameter) {
  7. try {
  8. NativeWebRequest webRequest = getWebRequest();
  9. Object result = this.adaptee.resolveArgument(parameter, webRequest);
  10. if (result == WebArgumentResolver.UNRESOLVED) {
  11. return false;
  12. }
  13. else {
  14. return ClassUtils.isAssignableValue(parameter.getParameterType(), result);
  15. }
  16. }
  17. catch (Exception ex) {
  18. // ignore (see class-level doc)
  19. logger.debug("Error in checking support for parameter [" + parameter + "], message: " + ex.getMessage());
  20. return false;
  21. }
  22. }

代码示例来源:origin: org.springframework/spring-web

  1. /**
  2. * Delegate to the {@link WebArgumentResolver} instance.
  3. * @throws IllegalStateException if the resolved value is not assignable
  4. * to the method parameter.
  5. */
  6. @Override
  7. @Nullable
  8. public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer,
  9. NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception {
  10. Class<?> paramType = parameter.getParameterType();
  11. Object result = this.adaptee.resolveArgument(parameter, webRequest);
  12. if (result == WebArgumentResolver.UNRESOLVED || !ClassUtils.isAssignableValue(paramType, result)) {
  13. throw new IllegalStateException(
  14. "Standard argument type [" + paramType.getName() + "] in method " + parameter.getMethod() +
  15. "resolved to incompatible value of type [" + (result != null ? result.getClass() : null) +
  16. "]. Consider declaring the argument type in a less specific fashion.");
  17. }
  18. return result;
  19. }

代码示例来源:origin: org.springframework/spring-web

  1. /**
  2. * Actually resolve the value and check the resolved value is not
  3. * {@link WebArgumentResolver#UNRESOLVED} absorbing _any_ exceptions.
  4. */
  5. @Override
  6. public boolean supportsParameter(MethodParameter parameter) {
  7. try {
  8. NativeWebRequest webRequest = getWebRequest();
  9. Object result = this.adaptee.resolveArgument(parameter, webRequest);
  10. if (result == WebArgumentResolver.UNRESOLVED) {
  11. return false;
  12. }
  13. else {
  14. return ClassUtils.isAssignableValue(parameter.getParameterType(), result);
  15. }
  16. }
  17. catch (Exception ex) {
  18. // ignore (see class-level doc)
  19. logger.debug("Error in checking support for parameter [" + parameter + "], message: " + ex.getMessage());
  20. return false;
  21. }
  22. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void supportsParameterThrowsException() throws Exception {
  3. given(adaptee.resolveArgument(parameter, webRequest)).willThrow(new Exception());
  4. assertFalse("Parameter supported", adapter.supportsParameter(parameter));
  5. verify(adaptee).resolveArgument(parameter, webRequest);
  6. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test(expected = Exception.class)
  2. public void resolveArgumentThrowsException() throws Exception {
  3. given(adaptee.resolveArgument(parameter, webRequest)).willThrow(new Exception());
  4. adapter.resolveArgument(parameter, null, webRequest, null);
  5. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void supportsParameterUnresolved() throws Exception {
  3. given(adaptee.resolveArgument(parameter, webRequest)).willReturn(WebArgumentResolver.UNRESOLVED);
  4. assertFalse("Parameter supported", adapter.supportsParameter(parameter));
  5. verify(adaptee).resolveArgument(parameter, webRequest);
  6. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void supportsParameter() throws Exception {
  3. given(adaptee.resolveArgument(parameter, webRequest)).willReturn(42);
  4. assertTrue("Parameter not supported", adapter.supportsParameter(parameter));
  5. verify(adaptee).resolveArgument(parameter, webRequest);
  6. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void supportsParameterWrongType() throws Exception {
  3. given(adaptee.resolveArgument(parameter, webRequest)).willReturn("Foo");
  4. assertFalse("Parameter supported", adapter.supportsParameter(parameter));
  5. verify(adaptee).resolveArgument(parameter, webRequest);
  6. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test(expected = IllegalStateException.class)
  2. public void resolveArgumentUnresolved() throws Exception {
  3. given(adaptee.resolveArgument(parameter, webRequest)).willReturn(WebArgumentResolver.UNRESOLVED);
  4. adapter.resolveArgument(parameter, null, webRequest, null);
  5. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test(expected = IllegalStateException.class)
  2. public void resolveArgumentWrongType() throws Exception {
  3. given(adaptee.resolveArgument(parameter, webRequest)).willReturn("Foo");
  4. adapter.resolveArgument(parameter, null, webRequest, null);
  5. }

代码示例来源:origin: spring-projects/spring-framework

  1. @Test
  2. public void resolveArgument() throws Exception {
  3. int expected = 42;
  4. given(adaptee.resolveArgument(parameter, webRequest)).willReturn(expected);
  5. Object result = adapter.resolveArgument(parameter, null, webRequest, null);
  6. assertEquals("Invalid result", expected, result);
  7. }

代码示例来源:origin: philwebb/springfaces

  1. public boolean matches(NativeWebRequest request, MethodParameter methodParameter) {
  2. if (this.webArgumentResolvers != null) {
  3. for (WebArgumentResolver resolver : this.webArgumentResolvers) {
  4. try {
  5. if (resolver.resolveArgument(methodParameter, request) != WebArgumentResolver.UNRESOLVED) {
  6. return true;
  7. }
  8. } catch (Exception e) {
  9. throw new IllegalStateException(e);
  10. }
  11. }
  12. }
  13. return false;
  14. }
  15. }

代码示例来源:origin: org.parancoe/parancoe-web

  1. protected Object resolveCommonArgument(MethodParameter methodParameter,
  2. NativeWebRequest webRequest)
  3. throws Exception {
  4. if (this.customArgumentResolvers != null) {
  5. for (WebArgumentResolver argumentResolver : this.customArgumentResolvers) {
  6. Object value = argumentResolver.resolveArgument(methodParameter,
  7. webRequest);
  8. if (value != WebArgumentResolver.UNRESOLVED) {
  9. return value;
  10. }
  11. }
  12. }
  13. return resolveStandardArgument(methodParameter.getParameterType(),
  14. webRequest);
  15. }

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web

  1. /**
  2. * Delegate to the {@link WebArgumentResolver} instance.
  3. * @throws IllegalStateException if the resolved value is not assignable
  4. * to the method parameter.
  5. */
  6. @Override
  7. @Nullable
  8. public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer,
  9. NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception {
  10. Class<?> paramType = parameter.getParameterType();
  11. Object result = this.adaptee.resolveArgument(parameter, webRequest);
  12. if (result == WebArgumentResolver.UNRESOLVED || !ClassUtils.isAssignableValue(paramType, result)) {
  13. throw new IllegalStateException(
  14. "Standard argument type [" + paramType.getName() + "] in method " + parameter.getMethod() +
  15. "resolved to incompatible value of type [" + (result != null ? result.getClass() : null) +
  16. "]. Consider declaring the argument type in a less specific fashion.");
  17. }
  18. return result;
  19. }

代码示例来源:origin: apache/servicemix-bundles

  1. /**
  2. * Delegate to the {@link WebArgumentResolver} instance.
  3. * @throws IllegalStateException if the resolved value is not assignable
  4. * to the method parameter.
  5. */
  6. @Override
  7. @Nullable
  8. public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer,
  9. NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws Exception {
  10. Class<?> paramType = parameter.getParameterType();
  11. Object result = this.adaptee.resolveArgument(parameter, webRequest);
  12. if (result == WebArgumentResolver.UNRESOLVED || !ClassUtils.isAssignableValue(paramType, result)) {
  13. throw new IllegalStateException(
  14. "Standard argument type [" + paramType.getName() + "] in method " + parameter.getMethod() +
  15. "resolved to incompatible value of type [" + (result != null ? result.getClass() : null) +
  16. "]. Consider declaring the argument type in a less specific fashion.");
  17. }
  18. return result;
  19. }

代码示例来源:origin: apache/servicemix-bundles

  1. protected Object resolveCommonArgument(MethodParameter methodParameter, NativeWebRequest webRequest)
  2. throws Exception {
  3. // Invoke custom argument resolvers if present...
  4. if (this.customArgumentResolvers != null) {
  5. for (WebArgumentResolver argumentResolver : this.customArgumentResolvers) {
  6. Object value = argumentResolver.resolveArgument(methodParameter, webRequest);
  7. if (value != WebArgumentResolver.UNRESOLVED) {
  8. return value;
  9. }
  10. }
  11. }
  12. // Resolution of standard parameter types...
  13. Class<?> paramType = methodParameter.getParameterType();
  14. Object value = resolveStandardArgument(paramType, webRequest);
  15. if (value != WebArgumentResolver.UNRESOLVED && !ClassUtils.isAssignableValue(paramType, value)) {
  16. throw new IllegalStateException("Standard argument type [" + paramType.getName() +
  17. "] resolved to incompatible value of type [" + (value != null ? value.getClass() : null) +
  18. "]. Consider declaring the argument type in a less specific fashion.");
  19. }
  20. return value;
  21. }

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-web

  1. /**
  2. * Actually resolve the value and check the resolved value is not
  3. * {@link WebArgumentResolver#UNRESOLVED} absorbing _any_ exceptions.
  4. */
  5. @Override
  6. public boolean supportsParameter(MethodParameter parameter) {
  7. try {
  8. NativeWebRequest webRequest = getWebRequest();
  9. Object result = this.adaptee.resolveArgument(parameter, webRequest);
  10. if (result == WebArgumentResolver.UNRESOLVED) {
  11. return false;
  12. }
  13. else {
  14. return ClassUtils.isAssignableValue(parameter.getParameterType(), result);
  15. }
  16. }
  17. catch (Exception ex) {
  18. // ignore (see class-level doc)
  19. logger.debug("Error in checking support for parameter [" + parameter + "], message: " + ex.getMessage());
  20. return false;
  21. }
  22. }

代码示例来源:origin: apache/servicemix-bundles

  1. /**
  2. * Actually resolve the value and check the resolved value is not
  3. * {@link WebArgumentResolver#UNRESOLVED} absorbing _any_ exceptions.
  4. */
  5. @Override
  6. public boolean supportsParameter(MethodParameter parameter) {
  7. try {
  8. NativeWebRequest webRequest = getWebRequest();
  9. Object result = this.adaptee.resolveArgument(parameter, webRequest);
  10. if (result == WebArgumentResolver.UNRESOLVED) {
  11. return false;
  12. }
  13. else {
  14. return ClassUtils.isAssignableValue(parameter.getParameterType(), result);
  15. }
  16. }
  17. catch (Exception ex) {
  18. // ignore (see class-level doc)
  19. logger.debug("Error in checking support for parameter [" + parameter + "], message: " + ex.getMessage());
  20. return false;
  21. }
  22. }

代码示例来源:origin: org.springframework/org.springframework.web.portlet

  1. /**
  2. * Resolves common method arguments. Delegates to registered
  3. * {@link #setCustomArgumentResolver argumentResolvers} first,
  4. * then checking {@link #resolveStandardArgument}.
  5. * @param methodParameter the method parameter
  6. * @param webRequest the request
  7. * @param thrownException the exception thrown
  8. * @return the argument value, or {@link org.springframework.web.bind.support.WebArgumentResolver#UNRESOLVED}
  9. */
  10. protected Object resolveCommonArgument(MethodParameter methodParameter, NativeWebRequest webRequest,
  11. Exception thrownException) throws Exception {
  12. // Invoke custom argument resolvers if present...
  13. if (this.customArgumentResolvers != null) {
  14. for (WebArgumentResolver argumentResolver : this.customArgumentResolvers) {
  15. Object value = argumentResolver.resolveArgument(methodParameter, webRequest);
  16. if (value != WebArgumentResolver.UNRESOLVED) {
  17. return value;
  18. }
  19. }
  20. }
  21. // Resolution of standard parameter types...
  22. Class<?> paramType = methodParameter.getParameterType();
  23. Object value = resolveStandardArgument(paramType, webRequest, thrownException);
  24. if (value != WebArgumentResolver.UNRESOLVED && !ClassUtils.isAssignableValue(paramType, value)) {
  25. throw new IllegalStateException("Standard argument type [" + paramType.getName() +
  26. "] resolved to incompatible value of type [" + (value != null ? value.getClass() : null) +
  27. "]. Consider declaring the argument type in a less specific fashion.");
  28. }
  29. return value;
  30. }

相关文章

WebArgumentResolver类方法