Richfaces 4 a4j: действие commandLink не запускается в rich:popupPanel
Кажется, у меня есть проблема, когда у меня есть a4j:commandLink на rich:popupPanel, но действие не запускается. XHTML выглядит следующим образом:
<rich:popupPanel id="rate-panel" modal="true" height="444" width="780" top="60" show="false" onmaskclick="#{rich:component('rate-panel')}.hide()" styleClass="cs-modal">
/**Some html here**/
<a4j:commandLink immediate="false" action="#{venueScore.up}" render="rate-panel" styleClass="rate love">
<span>Love it</span>
</a4j:commandLink>
/**Some more html here**/
</rich:popupPanel>
И управляемый компонент выглядит следующим образом:
@Named("venueScore")
@ViewScoped
public class VenueScoreManager extends BaseManager implements Serializable {
public void up() {
System.out.println("TEST");
//Do something
}
}
Я сделал управляемый бин @ViewScoped.
Я также попытался добавить <h:form>
однако, в отношении commandLink это делает даже меньше, чем без него. Я на самом деле думаю, что это потому, что commandLink находится внутри <h:form>
в котором сидит ссылка, открывшая popupPanel.
Во всяком случае, может кто-то, пожалуйста, укажите мне в направлении, почему действие не огонь?
3 ответа
Итак, я исправил это сам. После шумихи я решил, что мне просто нужно добавить <a4j:region>
вокруг содержания в <rich:popupPanel>
, Итак, теперь xhtml выглядит примерно так:
<rich:popupPanel id="rate-panel" modal="true" height="444" width="780" top="60" show="false" onmaskclick="#{rich:component('rate-panel')}.hide()" styleClass="cs-modal">
<a4j:region id="panel-region">
/**Some html here**/
<a4j:commandLink immediate="false" action="#{venueScore.up}" render="panel-region" styleClass="rate love">
<span>Love it</span>
</a4j:commandLink>
/**Some more html here**/
</a4j:region>
</rich:popupPanel>
У меня была та же проблема, a4j:commandLink работал только после первого щелчка.... поместите poppanel внутри формы и добавьте domElementAttachment...
<h:form id="myform">
<rich:popupPanel id="pop" domElementAttachment="form">
...
<a4j:commandLink />
...
</rich:popupPanel>
</h:form>
Я знаю, что это старый вопрос, но, поскольку у меня была точно такая же проблема, я потратил много времени, прежде чем ее исправить, возможно, это поможет кому-то еще. Сначала я попробовал решение, предложенное выше, но оно не сработало. Наконец, я нашел эту тему: Проблемы закрытия rich:popupPanel через условие show, RF 4.0
И я добавил атрибут domElement в свое всплывающее окно:
<rich:popupPanel
id="newMailPopup"
**domElementAttachment="form"**
...>
И теперь мой a4j:commandLink работает отлично:-)