JSF2: есть ли способ использовать a4j: param с rich: select или h: selectOneMenu - PullRequest
1 голос
/ 28 апреля 2011

Можно ли использовать с выпадающими меню или это также зависит от родительского объекта, реализующего ActionSource, как f: setPropertyActionLister?

В идеале я бы сделал что-то вроде следующего:

<h:selectOneMenu value="#{myCustomBean.selectedItemIndex}">
    <f:selectItems value="#{adminLetterAdminBean.missingSettings}" var="n" itemValue="#{n.id}" itemLabel="#{n.name}"/>
    <f:setPropertyActionListener value="42" target="#{adminLetterAdminBean.someProperty}" />
    <a4j:ajax />
</rich:select>

Однако это не работает, потому что h: selectOneMenu не реализует javax.faces.component.ActionSource.Страница не отображается, и она дает мне дружественный след стека, чтобы сказать мне об этой зависимости.

Не видя ничего в документации Richfaces об этом ограничении, я попробовал следующее:

<h:selectOneMenu value="#{myCustomBean.selectedItemIndex}">
    <f:selectItems value="#{adminLetterAdminBean.missingSettings}" var="n" itemValue="#{n.id}" itemLabel="#{n.name}"/>
    <a4j:param assignTo="#{adminLetterAdminBean.someProperty}" value="42" name="randomRequestParamName"/>
    <a4j:ajax />
</rich:select>

Это не взрывается, но также не устанавливаетимущество.Мне было интересно, если есть набор (или несколько) свойств подобным образом.

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

a4j: param может быть вложен только в компонент действия, такой как a4j: commandButon, a4j: commandLink и a4j: jsFunction. Вы также можете использовать его со стандартными компонентами кнопки / ссылки.

0 голосов
/ 01 февраля 2013

У меня была похожая проблема.Моя страница должна передать информацию об автозаполнении до того, как будет выполнен запрос автозаполнения.Я добился этого с помощью jsFunction.Мое автозаполнение выглядит следующим образом:

<rich:autocomplete mode="ajax" showButton="true" value="#{conf.fieldValue}" 
      autocompleteMethod="#{BackingBean.search.autocomplete}" 
      minChars="3" onfocus="sendInfo('#{conf.label}')">
</rich:autocomplete>

В зависимости от conf.label (conf - это переменная forEach) с помощью бина-компонента в методе автозаполнения извлекаются разные данные.выполняется jsFunction (сразу после объявления автозаполнения):

<a4j:jsFunction name="sendInfo">
     <a4j:param name="param1" assignTo="#{BackingBean.search.currentAutocomplete}"/>
</a4j:jsFunction>

Просто, когда пользователь помещает фокус на определенное автозаполнение, «sendInfo» выполняется с одним параметром, который связан с компонентом поддержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...