JSF コード:
<rich:popupPanel modal="true" id="editPanelUser">
<h:form>
<h:panelGrid columns="2">
<h:outputLabel value="first name (*)" />
<h:inputText value="#{usersBean.currentItem.firstName}" />
</h:panelGrid>
<h:panelGrid>
<a4j:commandButton value="save"
oncomplete="if(#{facesContext.maximumSeverity==null}) #{rich:component('editPanelUser')}.hide()"
action="#{usersBean.runAction('saveUser')}"/>
</h:panelGrid>
</h:form>
</rich:popupPanel>
バッキング Bean コード:
public void setRunAction(String action){
if("saveUser".equals(action)){
...
}
}
setRunAction メソッドにブレークポイントを設定しましたが、ここに到達することはありません。アイデア?
奇妙なのは、このポップアップを開く a4j:commandLink コードが正常に動作し、runAction メソッドを呼び出すことです。
<h:form>
<rich:dataTable value="#{usersBean.dataList}" var="singleUser"
rowClasses="row1,row2" rowKeyVar="row" id="singleUserTable"
ajaxKeys="#{usersBean.keys}">
<rich:column>
<a4j:commandLink id="editlink"
oncomplete="#{rich:component('editPanelUser')}.show();return false;">
<f:setPropertyActionListener value="editUser"
target="#{usersBean.runAction}" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
</h:form>