Вы хотите выполнить f:ajax
на основе критериев в вашем бине. По сути, f:ajax
должен отображаться, когда критерии верны, а в противном случае - нет. Каждый компонент JSF имеет значение rendered
.
Ваш код должен выглядеть следующим образом:
<h:commandButton id="buy" class="btn btn-primary" type="submit" value="Put" action="#{dashboard.calculateProcessing}" >
<f:ajax render="@form" execute="@form" x:data-toggle="modal" x:data-target="#demoModal" rendered="#{dashboard.amount <= 0}"/>
</h:commandButton>
Это также можно сделать с несколькими f:ajax
, например:
<h:commandButton>
<f:ajax render="@form" rendered="#{bean.condition}" />
<f:ajax execute="@form" rendered="#{bean.int < 0}" />
<f:ajax action="#{bean.action}" rendered="#{bean.property == null}" />
</h:commandButton>
Обычно, если атрибут rendered
имеет значение false, это не приведет к получению HTML клиентом. Подробнее о визуализации
Вы также можете использовать jstl теги , чтобы определить, будет ли компонент визуализирован. Используйте вот так:
<h:commandButton>
<c:if test="#{bean.condition}>
<!-- f:ajax here-->
</c:if>
<c:choose>
<c:when test="#{bean.condition}">
<!-- f:ajax here-->
</c:when>
<c:otherwise>
<!-- f:ajax here-->
</c:otherwise>
</c:choose>
</h:commandButton>
Для вызова динамических c действий, например, в commandButton
см. this .