Building Routable Links

In your views, layouts and handlers you can use the buildLink method provided by the request context object (event) to build routable links in your application.

/**
 * Builds links to events or URL Routes
 *
 * @to          The event or route path you want to create the link to
 * @queryString The query string to append which can be a regular query string string, or a struct of name-value pairs
 * @translate   Translate between . to / depending on the SES mode on to and queryString arguments. Defaults to true.
 * @ssl         Turn SSl on/off on URL creation, by default is SSL is enabled, we will use it.
 * @baseURL     If not using SES, you can use this argument to create your own base url apart from the default of index.cfm. Example: https://mysample.com/index.cfm
 */
string function buildLink(
	to,
	queryString       = "",
	boolean translate = true,
	boolean ssl,
	baseURL = ""
){

Just pass in the routed URL or event and it will create the appropriate routed URL for you:

<a href="#event.buildLink( 'home.about' )#">About</a>
<a href="#event.buildLink( 'user.edit.id.#user.getID()#' )#">Edit User</a>

QueryString Struct

The queryString argument can be a simple query string or a struct that represents the query variables to append.

<a href="#event.buildLink( 'home.about', "page=2&format=simple" )#">About</a>

<a href="#event.buildLink( 'home.about', { page : 2, format: "simple" } )#">About</a>

Named Routes

Please note that the to argument can be a simple route path, but it can also be a struct. This struct is for routing to named routes. Even though we recommend to use the route() method instead.

event.buildLink( {
    name : "routeName",
    params : { ... }
} )

event.route( "routeName", { ... } )

Inspecting The Current Route

The request context object (event) also has some handy methods to tell you the name or even the current route that was selected for execution:

  • getCurrentRouteName() - Gives you the name of the current route, if any

  • getCurrentRoute() - Gives you the currently executed route

  • getCurrentRoutedURL() - Gives you the complete routed URL pattern that matched the route

  • getCurrentRoutedNamespace() - Gives you the current routed namespace, if any

Last updated