The
JSF selectOneMenu control is its counterpart to the HTML <SELECT> and <OPTION> tags. The OPTION tag has an attribute (value) and a body (label), so the SelectOneMenu must likewise allow for those 2 items.
Because of that, a simple List or array of
string values is not a suitable 'value=' property model for selectOneMenu.
JSF defines a prototype model class to hold OPTION definitions. It is the SelectItem class and it can be instantiated with a label and value or just a label - in which case the SelectItem instance will use the label also as its value.
Your conversion is failing because of this simple fact: you are attempting to return a List of Strings where
you should be returning a List of SelectItem objects.
There is also an additional problem, though. JSF "get" methods can be called 5 or 6 times for a single page operation, which means 5 or 6 repeats of fetch data from the backing database. That is very inefficient and can slow down your page rendering. It also has the potential to become corrupt, if the list of items that are pulled changes between one call of your "get" method and the next on the same page request.
A safer and more reliable way of setting up the SelectItem list would be to create the list of SelectItem objects from the database before the getAllStatus() method is first called, save that list as an internal backing bean property and have getAllStatus() return it.