Blog

Tip of the Week: ColdBox Routes

Brad Wood November 28, 2012

Spread the word

Brad Wood

November 28, 2012

Spread the word


Share your thoughts

 

Hopefully you are already familiar with the format of a default ColdBox URL when using the SES interceptor.  
 
mysite.com/index.cfm/myHandlerName/myActionName
 
Of course, a simple rewrite rule can simplify that even further to:
 
mysite.com/myHandlerName/myActionName
 
What you may not realize is that URL pattern is called a "route" and not only can be changed, but you can add as many customized routes as your application desires.  The magic happens in your /config/routes.cfm file where all the routes are declared in the order they should be processed.  You'll find the default route in that file:
 
addRoute(pattern=":handler/:action?");
 
The syntax for adding a new custom route looks like this:
 
addRoute(pattern="/URLStringToMatch", handler="handlerName", action="actionName");
 
That means, you could set up a route like so:
 
addRoute(pattern="/blog", handler="entryHandler", action="listEntries");
 
Now, the following two URLs would point to the exact same thing (with the second option being obviously preferable):
 
mysite.com/entryHandler/listEntries
mysite.com/blog
 
You can even clean up URLs that have variables.  Consider the following page on your site:
 
mysite.com/services/products/productDetail/productID/1234
 
Just add a new route that looks like this:
 
addRoute(pattern="/product/:productID", handler="services.products", action="productDetail");
 
And now the following URL will give you the same page:
 
mysite.com/product/1234
 
As you can see, routes are a very powerful way to keep those URLs looking sharp, but we're barely scratching the surface of what you can do.  Don't get intimidated though-- read through the docs dive in!
 
 

Add Your Comment

Recent Entries

Supercharge Your BoxLang Applications with Maven Integration

Supercharge Your BoxLang Applications with Maven Integration

We're excited to announce a game-changing feature for BoxLang developers: Maven Integration! This powerful addition opens the door to the entire Java ecosystem, allowing you to seamlessly incorporate thousands of Java libraries into your BoxLang applications with just a few simple commands.

Luis Majano
Luis Majano
June 06, 2025
Streamline Your CI/CD: Introducing the Setup BoxLang GitHub Action

Streamline Your CI/CD: Introducing the Setup BoxLang GitHub Action

We're excited to announce the release of the Setup BoxLang GitHub Action – a powerful new tool that makes it incredibly easy to integrate BoxLang into your continuous integration and deployment workflows. Whether you're building applications, running tests, or deploying BoxLang projects, this action eliminates the complexity of environment setup and gets you coding faster.

Luis Majano
Luis Majano
June 04, 2025
BoxLang v1.2.0 Released

BoxLang v1.2.0 Released

🔥 BoxLang 1.2 is Here! 🔥

We're excited to announce the release of BoxLang 1.2, a significant milestone that demonstrates our commitment to delivering both cutting-edge features and exceptional performance. This release represents how much innovation the entire BoxLang team can accomplish in just 2 weeks of focused development, bringing you powerful new capabilities while dramatically improving the runtime efficiency that makes BoxLang a compelling choice for modern applications.

Luis Majano
Luis Majano
May 29, 2025