CWidget::actions() is mainly used when you have a lot of actions associated with a widget. In your case you don't need it. You may refer to the login portlet in the blog demo.
The relevant documentation about using CWidget::actions() is in the API manual about CWidget::actions() and CController::actions().
To answer your question,
the route for a widget action is in the form of: controllerID/actionPrefix.actionID
You may place the action class anywhere (e.g. components). You just need to specify the 'class' option correctly when you declare CWidget::actions()