Во время обработки отправки формы JSF повторно оценит, была ли отображена командная кнопка / ссылка.Если он не отображается, он просто пропустит действие.
Необходимо убедиться, что выражение #{cartBean.itemsAdded}
также возвращает true
, когда отправка формы обрабатывается JSF.Простой тест состоит в том, чтобы поместить компонент в область действия сеанса (и я предполагаю, что isItemsAdded()
является чистым получателем, то есть содержит только return itemsAdded;
).
Если это решило проблему, и вы 'Я хотел бы сохранить компонент в области запроса, затем добавьте <a4j:keepAlive>
, чтобы сохранить свойства компонента в следующем запросе.
<a4j:keepAlive beanName="#{cartBean}" />
См. также:
Независимо от конкретной проблемы, вы должны как можно больше предпочитать теги / атрибуты JSF, а не JSTL.В этом конкретном случае вы должны избавиться от обоих тегов JSTL <c:>
и использовать вместо этого предоставленный JSF атрибут rendered
:
<h:form id="test1" rendered="#{cartBean.itemsAdded}">
<h:commandLink action="#{cartBean.foo}">this doesn't work</h:commandLink>
</h:form>