Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -65,64 +65,4 @@ The exception contains a list of ``ParameterValidationResult``s that group valid
by method parameter. You can either iterate over those, or provide a visitor with callback
methods by controller method parameter type:

[tabs]
======
Java::
+
[source,java,indent=0,subs="verbatim,quotes"]
----
HandlerMethodValidationException ex = ... ;

ex.visitResults(new HandlerMethodValidationException.Visitor() {

@Override
public void requestHeader(RequestHeader requestHeader, ParameterValidationResult result) {
// ...
}

@Override
public void requestParam(@Nullable RequestParam requestParam, ParameterValidationResult result) {
// ...
}

@Override
public void modelAttribute(@Nullable ModelAttribute modelAttribute, ParameterErrors errors) {

// ...

@Override
public void other(ParameterValidationResult result) {
// ...
}
});
----

Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
// HandlerMethodValidationException
val ex

ex.visitResults(object : HandlerMethodValidationException.Visitor {

override fun requestHeader(requestHeader: RequestHeader, result: ParameterValidationResult) {
// ...
}

override fun requestParam(requestParam: RequestParam?, result: ParameterValidationResult) {
// ...
}

override fun modelAttribute(modelAttribute: ModelAttribute?, errors: ParameterErrors) {
// ...
}

// ...

override fun other(result: ParameterValidationResult) {
// ...
}
})
----
======
include-code::./HandlerMethodValidationExceptionVisitor[tag=snippet,indent=0]
Original file line number Diff line number Diff line change
Expand Up @@ -65,64 +65,4 @@ The exception contains a list of ``ParameterValidationResult``s that group valid
by method parameter. You can either iterate over those, or provide a visitor with callback
methods by controller method parameter type:

[tabs]
======
Java::
+
[source,java,indent=0,subs="verbatim,quotes"]
----
HandlerMethodValidationException ex = ... ;

ex.visitResults(new HandlerMethodValidationException.Visitor() {

@Override
public void requestHeader(RequestHeader requestHeader, ParameterValidationResult result) {
// ...
}

@Override
public void requestParam(@Nullable RequestParam requestParam, ParameterValidationResult result) {
// ...
}

@Override
public void modelAttribute(@Nullable ModelAttribute modelAttribute, ParameterErrors errors) {

// ...

@Override
public void other(ParameterValidationResult result) {
// ...
}
});
----

Kotlin::
+
[source,kotlin,indent=0,subs="verbatim,quotes"]
----
// HandlerMethodValidationException
val ex

ex.visitResults(object : HandlerMethodValidationException.Visitor {

override fun requestHeader(requestHeader: RequestHeader, result: ParameterValidationResult) {
// ...
}

override fun requestParam(requestParam: RequestParam?, result: ParameterValidationResult) {
// ...
}

override fun modelAttribute(modelAttribute: ModelAttribute?, errors: ParameterErrors) {
// ...
}

// ...

override fun other(result: ParameterValidationResult) {
// ...
}
})
----
======
include-code::./HandlerMethodValidationExceptionVisitor[tag=snippet,indent=0]
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package org.springframework.docs.web.webflux.controller.mvcannvalidation;

import org.jspecify.annotations.Nullable;
import org.springframework.validation.method.ParameterErrors;
import org.springframework.validation.method.ParameterValidationResult;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.MatrixVariable;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.method.annotation.HandlerMethodValidationException;

public class HandlerMethodValidationExceptionVisitor {

static void main() {
// tag::snippet[]
HandlerMethodValidationException ex = /**/ new HandlerMethodValidationException(null);

ex.visitResults(new HandlerMethodValidationException.Visitor() {

@Override
public void requestHeader(RequestHeader requestHeader, ParameterValidationResult result) {
// ...
}

@Override
public void requestParam(@Nullable RequestParam requestParam, ParameterValidationResult result) {
// ...
}

@Override
public void modelAttribute(@Nullable ModelAttribute modelAttribute, ParameterErrors errors) {
// ...
}

// @fold:on // ...
@Override
public void requestPart(RequestPart requestPart, ParameterErrors errors) {

}

@Override
public void cookieValue(CookieValue cookieValue, ParameterValidationResult result) {

}

@Override
public void matrixVariable(MatrixVariable matrixVariable, ParameterValidationResult result) {

}

@Override
public void pathVariable(PathVariable pathVariable, ParameterValidationResult result) {

}

@Override
public void requestBody(RequestBody requestBody, ParameterErrors errors) {

}
// @fold:off

@Override
public void other(ParameterValidationResult result) {
// ...
}
});
// end::snippet[]
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package org.springframework.docs.web.webmvc.mvccontroller.mvcannvalidation;

import org.jspecify.annotations.Nullable;
import org.springframework.validation.method.ParameterErrors;
import org.springframework.validation.method.ParameterValidationResult;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.MatrixVariable;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.method.annotation.HandlerMethodValidationException;

public class HandlerMethodValidationExceptionVisitor {

static void main() {
// tag::snippet[]
HandlerMethodValidationException ex = /**/ new HandlerMethodValidationException(null);

ex.visitResults(new HandlerMethodValidationException.Visitor() {

@Override
public void requestHeader(RequestHeader requestHeader, ParameterValidationResult result) {
// ...
}

@Override
public void requestParam(@Nullable RequestParam requestParam, ParameterValidationResult result) {
// ...
}

@Override
public void modelAttribute(@Nullable ModelAttribute modelAttribute, ParameterErrors errors) {
// ...
}

// @fold:on // ...
@Override
public void requestPart(RequestPart requestPart, ParameterErrors errors) {

}

@Override
public void cookieValue(CookieValue cookieValue, ParameterValidationResult result) {

}

@Override
public void matrixVariable(MatrixVariable matrixVariable, ParameterValidationResult result) {

}

@Override
public void pathVariable(PathVariable pathVariable, ParameterValidationResult result) {

}

@Override
public void requestBody(RequestBody requestBody, ParameterErrors errors) {

}
// @fold:off

@Override
public void other(ParameterValidationResult result) {
// ...
}
});
// end::snippet[]
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
package org.springframework.docs.web.webflux.controller.mvcannvalidation

import org.springframework.context.MessageSourceResolvable
import org.springframework.validation.method.MethodValidationResult
import org.springframework.validation.method.ParameterErrors
import org.springframework.validation.method.ParameterValidationResult
import org.springframework.web.bind.annotation.*
import org.springframework.web.method.annotation.HandlerMethodValidationException
import java.lang.reflect.Method

class HandlerMethodValidationExceptionVisitor {

fun main() {
// tag::snippet[]
val ex: HandlerMethodValidationException = /**/ HandlerMethodValidationException(EmptyMethodValidationResult())

ex.visitResults(object : HandlerMethodValidationException.Visitor {

override fun requestHeader(requestHeader: RequestHeader, result: ParameterValidationResult) {
// ...
}

override fun requestParam(requestParam: RequestParam?, result: ParameterValidationResult) {
// ...
}

override fun modelAttribute(modelAttribute: ModelAttribute?, errors: ParameterErrors) {
// ...
}

// @fold:on // ...
override fun requestPart(requestPart: RequestPart, errors: ParameterErrors) {
}

override fun cookieValue(cookieValue: CookieValue, result: ParameterValidationResult) {
}

override fun matrixVariable(matrixVariable: MatrixVariable, result: ParameterValidationResult) {
}

override fun pathVariable(pathVariable: PathVariable, result: ParameterValidationResult) {
}

override fun requestBody(requestBody: RequestBody, errors: ParameterErrors) {
}
// @fold:off

override fun other(result: ParameterValidationResult) {
// ...
}
})
// end::snippet[]
}

internal class EmptyMethodValidationResult : MethodValidationResult {
override fun getTarget(): Any {
TODO()
}

override fun getMethod(): Method {
TODO()
}

override fun isForReturnValue(): Boolean {
TODO()
}

override fun getParameterValidationResults(): List<ParameterValidationResult> {
TODO()
}

override fun getCrossParameterValidationResults(): List<MessageSourceResolvable> {
TODO()
}

override fun toString(): String {
TODO()
}
}
}
Loading