2013-04-28 4 views
1

Я использую Icefaces 1.8.2 с jsf 1.1 Метод сеттер целевого поля не вызывается до метода commandLink действия.е: setPropertyActionListener сеттер не вызывается

<ice:panelSeries id="deptSeries" value="#{sessionScopedBean.deptList}" var="dept"> 
...... 
<ice:commandLink actionListener="#{myActionBean.search}"> 
    <f:setPropertyActionListener target="#{sessionScopedBean.searchList}" 
               value="#{dept.myList}"/> 
    <ice:graphicImage title="search" url="/images/search.gif"/> 
    <f:param name="user" value="#{userBean.name}"/> 
</ice:commandLink> 
...... 
</ice:panelSeries> 
+0

Существуют ли какие-либо ошибки или предупреждения? – Kevin

+0

Нет ошибок где-либо –

ответ

1

Во-первых, <setPropertyActionListener /> был представлен в JSF 1.2.

Во-вторых, код actionListener="#{myActionBean.search}" представляет действие слушателя, а не действие. Следовательно, метод myActionBean.search() вызывается в той же фазе жизненного цикла JSF как слушатель действия свойства.

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

<ice:commandLink action="#{myActionBean.search}"> 
.... 
</ice:commandLink> 

Эта ссылка может быть полезно, чтобы получить понимание:

Differences between action and actionListener

+0

Я изменил действие, но нет никакой разницы, что сеттер все еще не вызывается, ссылка помогла понять какую-то деталь в любом случае –

+0

По-видимому, '' был введен только в JSF 1.2. Я обновил свой ответ. – Kevin

+0

Отлично, такие вещи должны произойти, он не жалуется, что я использовал этот тег, в любом случае спасибо, дайте мне знать, есть ли альтернативы. –

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