【发布时间】:2011-05-28 12:37:12
【问题描述】:
我有一个具有方法签名属性的组件。可以激活,但是如果我把它放在<h:datatable> <h:column/>中并触发这个组件,它就不起作用了。
当我再次刷新此页面或将其放在另一个地方时,它可以成功调用。如果有人能告诉我原因,我将不胜感激!
这是我的代码
<h:column>
<f:facet name="header">op:</f:facet>
<h:commandLink value="alter" action="#{userSession.alterAction}"
rendered="#{userSession.user.power.powerID == 1}">
<f:param name="beanId" value="#{book.bookID}" />
<f:param name="class" value="#{BookBean}" />
</h:commandLink>
<h:commandLink action="#{userSession.detailAction}" value="detail"
rendered="#{userSession.user != null}">
<f:param name="beanId" value="#{book.bookID}" />
<f:param name="class" value="#{BookBean}" />
</h:commandLink>
<h:commandLink action="#{bookAction.bookDelAction}"
onclick="return confirm('are you sure?')" value="delete"
rendered="#{userSession.user.power.powerID == 1}">
<f:param name="beanId" value="#{book.bookID}" />
</h:commandLink>
</h:column>
当我单击此操作之一时,此 manageredBean #{bookAction} 是 requestScope,就像删除一样,它根本不起作用。但是如果我把'delete'命令链接放在<h:datatabel/>之外。它可以成功调用支持方法。好难过!
谁能告诉我<h:datatable/> 是否可以屏蔽.i 发现如果我将这些代码放在<h:form/> 中。它也可以调用!你能告诉我原因吗!
【问题讨论】:
-
那么,普通的命令按钮有效吗?
-
我测试它只是一个普通按钮。如果我不把它放在
它可以很好地工作! -
那么,问题不在于复合组件吗?