2013-05-13 5 views
1

У меня есть 50 различных команд на странице jsff. Я хочу, чтобы команда commandlink была нажата в бэкбоне? Как это сделать? Я просто должен использовать один метод в бэк-бобеПолучить ссылку на ссылку в adf?

+0

Почему 50 различных ссылок вызывать то же ActionListener? Даже если они ссылаются, это действие одинаково для всех 50 ссылок? Если действие не одинаково, вы используете переключатель, чтобы решить, какое действие выполнить? Сохранение отдельных действий для каждой ссылки поможет в долгосрочной перспективе. – MohamedSanaulla

+0

Все 50 ссылок имеют тот же ActionListner. Логика внутри ActionListner зависит от щелчка пользователем CommandLink. –

ответ

1

Напишите слушателю и вызовите того же слушателя на всех ваших командных ссылках. Внутри метода прослушивателя звоните event.getAttributes(), который вернет карту атрибутов. На карте вы можете найти свойство id ссылки, представленной пользователем.

1

Просто прикрепите ActionListener:

<af:commandLink text="Command link 1" actionListener="#{bean.link1}"/> 
<af:commandLink text="Command link 2" actionListener="#{bean.link2}"/> 
<af:commandLink text="Command link 3" actionListener="#{bean.link3}"/> 
... 

Метода link1, link2, link3 и т.д. называется при нажатии команды ссылки соответствующей, так что вы неявно знаете, какая ссылка была нажата.

+0

Что делать, если у меня 50 командных ссылок? вы предлагаете, создавая 50 различных методов в компоненте? –

+1

, если 50 команд-ссылок выполняют разные операции, то да. Если все они выполняют одну операцию, то почему у них 50 ссылок? Или, если 50 ссылок выполняют одну и ту же операцию, но данные, которые будут использоваться в операции, различны, вы можете использовать фасет , чтобы передать это значение и получить этот атрибут как: eventName.getComponent(). GetAttributes() – MohamedSanaulla

+0

Это может помочь. Позволь мне проверить. –

0

Напишите слушателю в бэк-компоненте, метод слушателя будет иметь «ActionEvent» в качестве аргумента. ActionEvent имеет apis getSource(), getComponent(), который можно использовать для получения щелчка по командной ссылке.

Смежные вопросы