recursive.codes


The Personal Blog of Todd Sharp

Spark Java "Flash" Scope

Posted By: Todd Sharp on 4/18/2017 3:33 GMT
Tagged: Groovy, Java, Spark Java

One of the handiest features of Grails is the "flash" scope.  The flash scope is "A temporary storage map that stores objects within the session for the next request and the next request only, automatically clearing out the objects held there after the next request completes."  It's a handy way to send messages and errors around when dealing with form posts and redirects.  Since I've been working with Spark Java I've found myself missing this little feature so I decided to throw together my own implementation.  I've added the following closure inside of my main() method in my Bootstrap class:

To manage the lifetime of the scope, I've added the following in my after() filter.  It limits the lifetime of any flash scoped variable to 2 requests:  

To read from the scope:

flash(request, 'key')

To write to it:

flash(request, 'key', 'value')

For convenience the write method also returns the value meaning you can do things like this:

To return then entire flash scope:

flash(request)

Image by Fotoworkshop4You from Pixabay



Related Posts

Announcing Micronaut 2.1

Announcing Micronaut 2.1

I’m happy to announce the release of Micronaut 2.1, which brings a handful of new features, bug fixes and upgrades to existing features. Let’s take a quick...

Announcing the Micronaut Oracle Cloud Infrastructure Module for Simple SDK Integration and Performant Serverless Functions

Announcing the Micronaut Oracle Cloud Infrastructure Module for Simple SDK Integration and Performant Serverless Functions

If you are a member or follower of the Java community, then you likely saw this news a few months ago: This is huge news. If you've read my blogs ...

The Complete Guide To Invoking Serverless Oracle Functions

The Complete Guide To Invoking Serverless Oracle Functions

I have blogged quite a bit about serverless Oracle Functions here on this blog, including several various examples about function invocation. But, I've...

Note: Comments are currently closed on this blog. Disqus is simply too bloated to justify its use with the low volume of comments on this blog. Please visit my contact page if you have something to say!