Я думаю, вы должны сначала удалить вложенный <h:outputText/>
, в этой позиции это не имеет смысла.Кроме того, из вашего кода вопроса и примера не совсем понятно, что PrimeFaces имеет к этому отношение.
Чтобы вывести выбранное значение, просто выведите выражение #{DataForm.stationed}
, так как это связывание, котороеполучит выбранное значение.
Следующий пример демонстрирует это через AJAX, но он будет работать точно так же, если вы используете действие и отправку обычной формы.
Facelet
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head />
<h:body>
<h:form id="form">
<f:ajax render="form">
<h:selectOneMenu value="#{selectOneMenuBean.value}">
<f:selectItems value="#{selectOneMenuBean.items}" var="item" itemValue="#{item}" itemLabel="#{item}" />
</h:selectOneMenu>
</f:ajax>
Selected value: #{selectOneMenuBean.value}
</h:form>
</h:body>
</html>
Bean
@ViewScoped
@ManagedBean
public class SelectOneMenuBean {
private List<String> items = Arrays.asList("a", "b", "c");
private String value;
public List<String> getItems() {
return items;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
ps В вашем примере кода имена EL для ваших бинов начинаются с заглавной буквы.Это немного против типичных условностей.Кроме того, вы можете обратить внимание на свои имена и типы.Бин возвращает что-то с именем listHotel
, но это присваивается переменной с именем user
, которая затем индексируется целым числом.Я бы порекомендовал выровнять имена (например, имя коллекции = users
, имя переменной user
) и использовать свойства вместо индексов (например, user.name
).