Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for java.util.Optional as a @RequestParam [SPR-11829] #16448

Closed
spring-projects-issues opened this issue May 29, 2014 · 1 comment
Closed
Assignees
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) type: enhancement A general enhancement
Milestone

Comments

@spring-projects-issues
Copy link
Collaborator

spring-projects-issues commented May 29, 2014

Graham Cox opened SPR-11829 and commented

Java 8 adds the new java.util.Optional type to represent values that might or might not have a value. I've just tried using this as a controller parameter that is annotated with @RequestParam and it unfortunately doesn't work.

If the request parameter is missing then the method parameter comes through as null, and if it is present then Spring throws an java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [java.util.Optional]: no matching editors or conversion strategy found.

It would be very useful if these came through as either Optional.EMPTY or Optional.of(param). I am currently doing this right at the top of my controller methods - essentially I'm wrapping the values in Optional.ofNullable() - but if Spring did this automatically that would be fantastic.


Affects: 4.0.5

Issue Links:

Referenced from: commits 0dc6082

@spring-projects-issues
Copy link
Collaborator Author

Rossen Stoyanchev commented

Yes, I suppose it applies to all the @RM args that can be optional.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: web Issues in web modules (web, webmvc, webflux, websocket) type: enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

2 participants