Попробуйте что-то вроде этого:
<h:form>
<h:selectOneMenu value="#{foo.theChosenValue}"
required="true" valueChangeListener="#{foo.processValueChange}"
onchange="this.form.submit();">
<s:selectItems
value="#{userAction.roleArray}"
var="role" label="#{role}"
noSelectionLabel="Please select" />
<s:convertEnum />
</h:selectOneMenu>
</h:form>
Ваш компонент должен затем:
@Name("foo")
public class Foo {
@Getter @Setter Enum theChosenValue; //I don't know your type
public void processValueChange(ValueChangeEvent value) throws AbortProcessingException {
if (value != null) {
if (value.getNewValue() instanceof Enum) {
this.theChosenValue = (Enum) value.getNewValue();
}
}
}
}