Blog

Tip of the Week: Implicit View Dispatch

Brad Wood December 05, 2012

Spread the word

Brad Wood

December 05, 2012

Spread the word


Share your thoughts

 

In the past we've talked about implicit views in ColdBox which mean that if the action in your event handler doesn't call setView() explicitly, ColdBox will use conventions to try and find the view to render.  Well, ColdBox also supports something called Implicit View Dispatch which goes one step further and allows you to dispatch a view to the user without running any event at all.
 
What are the use cases?  Well, perhaps you have a completely static view like a contact us page and creating a method in a handler somewhere would just be pure boilerplate.  We can tell ColdBox to just send the view directly back to the user (using the default layout). 
 
Or perhaps you're slowly integrating ColdBox into a legacy app and you want to still serve up a legacy CFM page while using ColdBox's routing mechanisms.  Again, we can ease into ColdBox without creating handlers for all those legacy pages yet.
 
So, how does it work?  Very simply, and unsurprisingly similar to how implicit views work.  If ColdBox can't located the package/handler or the action specified by your event, it uses a /views/[package/]handler/action.cfm convention to try and locate a view to return.
 
Consider a URL that looks like this:
 
mySite.com/index.cfm?event=contact.about
 
(Or the following equivalent for you people using the SES Interceptor and rewrites)
 
mySite.com/contact/about
 
If the "contact" handler doesn't exist, or does exist but doesn't have an "about" action, then ColdBox will look for the following view to dispatch directly:
 
/views/contact/about.cfm
 
If you have external view locations defined, ColdBox will check them as well before finally giving up and throwing an error.
 
 
P.S. It is also possible to add SES routes that directly dispatch a view without running an event like so:
 
addRoute(pattern='/AboutUs',view='contact/about');
 
That would make the following URL dispatch the same view as above, but with an even prettier URL:
 
mySite.com/AboutUs
 

Add Your Comment

Recent Entries

Ortus Will be at Adobe CF Summit 2022!

Ortus Will be at Adobe CF Summit 2022!

4 of our Ortusians will be speaking at CF Summit this year from Oct 3 - 4 in Las Vegas, Nevada. Here are all the details you need to join us and enjoy valuable CFML content to modernize your projects! We are sponsoring the event and will have a booth for you to come by and have a chat with our team!

Maria Jose Herrera
Maria Jose Herrera
September 27, 2022
Prefetching in CBWIRE

Prefetching in CBWIRE

When I want to increase the perceived speed of my CBWIRE apps, one tool I reach for is prefetching. Prefetching is a built-in feature of Livewire JS that allows you to invoke an Action's results on mouseOver.

Grant Copley
Grant Copley
September 20, 2022
Into the Box 2022 - Conference Recap

Into the Box 2022 - Conference Recap

This years Into the Box has just wrapped up, but we are already preparing for 2023’s Into the Box, May, Houston Texas! The event was a huge success, we had solid attendance in person, and almost doubled our online viewership from 2021, great feedback from attendees in Houston, and online. So many attendees didn’t say goodbye at the end of the conference, they said see you next year, which, as an organizer lets you know you’ve done things right, and the hard work has paid off.

Gavin Pickin
Gavin Pickin
September 16, 2022