在Richfaces中将值传递到支持bean的最佳方法

|| 我有一个表,并使用actionListener执行删除操作,请参见下图。 现在我正在使用event.getComponets()获取从f:param标签设置的值。但是,以这种方式,我必须将组件ID硬编码到支持bean中。看起来不是一个好方法。当表格中有一系列操作按钮时,这是从UI传递值的更好方法。
    final UIParameter parm = (UIParameter) event.getComponent().findComponent(EDIT_SITE_ID_PARM);
    return (Integer)parm.getValue();
已邀请:
您可以使用a4j:actionParam name = \“ .. \” value = \“ .. \”,它的工作方式与f:param相同,但也会自动将其分配给bean属性。另一个选择是使用f:setPropertyActionListener。
您的动作侦听器应如下所示:
public void deleteActionListener(ActionEvent event) {
        final String param = (String) FacesContext
                .getCurrentInstance().getExternalContext()
                .getRequestParameterMap().get(\"deleteIdParam\");
                //convert to int and call your delete method
}
因此,您只需对参数的名称ant而不是组件的ID进行硬编码。 当然,现在您的actionListener将是deleteActionListener,而不是您的旧版本。
克里斯汀通过使用actionparam帮助找到了一种方法。我把代码放在下面
<a4j:commandButton value=\"delete\" >
<a4j:support event=\"onclick\" reRender=\"reviewArea\">
    <a4j:actionparam name=\"setViewMode\" assignTo=\"#{backingBean.selectTmpId}\" value=\"#{item.id}\" actionListener=\"#{backingBean.viewMsgContent}\" />
</a4j:support>

要回复问题请先登录注册