The SelectOneMenu items that display are going to be whatever was returned from bussinessOwnersViewerMB.getCities() at the time the new page was requested.
I do not recommend passing the information needed to construct that list in by using parameters on the commandLink.
In fact, I almost never put parameters on the commandLink.
A more JSF-centric approach would be to inject bussinessOwnersViewerMB into the "ct" backing bean. Do not use a View ID as the "action" value in the commandButton, reference an action Method in the "ct" backing bean. That action method would then initialize bussinessOwnersViewerMB and direct
JSF to navigate to "distributer/distributersList.xhtml". Or, more appropriately: "/distributer/distributersList".
While the ct action method
can do any configuration to bussinessOwnersViewerMB that it wishes, I usually have code in bussinessOwnersViewerMB to do most of the initialization so that code doesn't get scattered over many different objects (which is one of the reasons I don't parameterize commandLinks).
So in bussinessOwnersViewerMB, I typically would have a "beginList()" method that the "ct" bean could invoke. In cases where I need to supply a parameter to select, for example, a business to edit, I'd pass that parameter to beginList() instead of using a parameter on the commandLInk itself.
Please note, however, that when you inject a bean like bussinessOwnersViewerMB into another bean such as "ct", that bussinessOwnersViewerMB must have a scope that allows it to be accessed properly. That usually means session scope, since View Scope would destroy the bean you injected into the first page (view) and create a new, uninitialized bean for the second page (view).