2013-11-18 4 views
6

У меня есть меню выбора, как это:установленного значения по умолчанию для selectonemenu

<h:selectOneMenu value="#{serverMB.selectedServerType}" > 
    <f:converter binding="#{serverTypeConverter}"/> 
    <f:selectItems value="#{serverMB.serverTypesList}" var="servertypes" 
      itemLabel="#{servertypes.server_type_name}" /> 
    <f:ajax listener="#{serverMB.changeSelectedOneMenuServerType}" render="selectservertype"/> 
</h:selectOneMenu> 

Я хочу значение по умолчанию в меню выбора, чтобы быть значением одного объекта, который был заполнен до того, что-то вроде этого:

<h:selectOneMenu value="#{serverMB.selectedServerType}" default="serverMB.server.servertype"> // <- default 

или как это:

<h:selectOneMenu value="#{serverMB.selectedServerType}"> 
    <f:converter binding="#{serverTypeConverter}"/> 
    <f:selectItem value"serverMB.server.servertype"/> <- but this item was the first one and has been selected 
    <f:selectItems value="#{serverMB.serverTypesList}" var="servertypes" 
      itemLabel="#{servertypes.server_type_name}" /> 
</h:selectOneMenu> 
+0

просто установить этот '# {serverMB.selectedServerType}' для вашего значения по умолчанию и SelectOne будет установить с ним по умолчанию –

+0

Я не понимаю ваше значение, как установить значение по умолчанию? –

+2

На вашем 'serverMB' перед тем, как вы визуализируете страницу по методу @PostConstruct или даже в конструкторе, вы можете установить' selectedServerType = objectThatHasTheDefaulValue', тогда JSF сделает все остальное. –

ответ

11

Вы можете сделать что-то вроде этого, если ваш объект уже заполнения d при вызове страницы, если это не так, он будет показывать <f:selectItem/> сообщений:

<h:selectOneMenu value="#{serverMB.server.servertype}"> 
    <f:converter binding="#{serverTypeConverter}"/> 
    <f:selectItem itemLabel="Select a Server..." /> 
    <f:selectItems value="#{serverMB.serverTypesList}" var="servertypes" 
      itemLabel="#{servertypes.server_type_name}"/> 
    <f:ajax listener="#{serverMB.changeSelectedOneMenuServerType}" 
      render="selectservertype"/> 
</h:selectOneMenu> 
+0

Я сделал это, но он нажимает выделение сервера в конце списка! –

+0

Сервер, который появится, является тем, кто принадлежит объекту, который вы отправляете на страницу. Это то, что вы хотите? – Anika

+0

да точно то же самое –

2

Вы также можете использовать OmniFaces converter.

Вот мой пример. Он отлично работает для меня. (Примечание: год является объектом Убедитесь, вы равны реализованы Годом является name и id только...)

<h:selectOneMenu value="#{bean.user.year}" 
     converter="omnifaces.SelectItemsConverter"> 
    <f:selectItem itemLabel="Please select a year." itemValue="#{null}" 
      noSelectionOption="true" /> 
    <f:selectItems value="#{bean.allyears}" var="year" 
      itemValue="#{year}" itemLabel="#{year.name}" /> 
</h:selectOneMenu> 
Смежные вопросы