Это швы, как легкая проблема, но, возможно, я чего-то не хватает. Я пытаюсь предварительно заполнить поле пользователя в поисковом фильтре с текущим зарегистрированным пользователем. Фильтр роли заполняется так, как ожидалось, но поле пользователя по умолчанию пусто. Я установил оператор журнала в bean-компоненте, и он проверяет, что бит установлен. Я также выполнил поиск в функции goToBasicSearch и выполняет поиск на основе текущего зарегистрированного пользователя.Установка выбора по умолчанию на selectOneMenu через Bean
Выпадающий список заполняется правильно, и выбор пользователя и поиск выполняются правильно. Я хотел бы знать, почему пользовательский интерфейс не заполняет поле значением по умолчанию. стек технологии: Шов 2,3, Jboss 7, JSF 2, RichFaces 4
Бобовые:
@Name("SearchAction")
@Scope(ScopeType.CONVERSATION)
public class SearchAction
{
private SearchFilter searchFilter = new SearchFilter;
// other stuff
@Begin(join = false)
public String goToBasicSearch()
{
searchFilter.setRole(Roles.ANY);
searchFilter.setStaff(user.getStaff());
return SEARCH;
}
XHTML
<!-- normal stuff -->
<h:selectOneMenu required="false" value="#{SearchAction.searchFilter.staff}">
<s:selectItems id="staffField" var="_selection" label="_selection.fullName" value="#{allStaff}" noSelectionLabel=""/>
<f:converter converterId="converter.staff"/>
</h:selectOneMenu>
<h:selectOneMenu id="roleField" required="false" value=#{SearchAction.searchFilter.role}">
<s:convertEnum />
<s:selectItems id="roleField" var="_selection" label="#{_selection.title} value=#{SearchAction.roleList}" noSelectionLabel="" hideNoSelectionLabel="true" itemValue="#{_selection}"
</h:selectOneMenu>
Большое спасибо
Действительно не уверен, почему это сработало, но это решило проблему. Я изменил 'searchFilter.setStaff (user.getStaff());' to long id = user.getStaff(). GetId(); для (Персонал персонала: staffList) { if (staff.getId() == id) { searchFilter.setStaff (штат); } } – drandall