Executes either successComponent or failedComponent depending on whether validate() return true or false