f:未调用setPropertyActionListener setter

时间:2013-04-28 05:50:41

标签: jsf icefaces commandlink icefaces-1.8

我正在Icefaces 1.8.2使用jsf 1.1commandLink操作方法之前,不会调用目标字段的setter方法。

<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>

1 个答案:

答案 0 :(得分:1)

首先,在JSF 1.2中引入了<setPropertyActionListener />

其次,代码actionListener="#{myActionBean.search}"代表一个动作侦听器,而不是一个动作。因此,方法myActionBean.search()在与业务操作侦听器相同的JSF生命周期阶段被调用。

尝试更改命令链接,如下所示:

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

此链接可能有助于理解:

Differences between action and actionListener