У меня есть приложение, которое использует JSF реализацию 2.1.29 Sun JSF RI интегрирован с Spring 3.1.0 и 4.3.7 RichFaces со следующим кодом:визуализации тегов в JSF 2
<h:form>
<a4j:outputPanel rendered="#{searchBean.activeTab}">
.....
</a4j:outputPanel>
</h:form>
<h:form>
<a4j:outputPanel id="searchPanel">
<a4j:outputPanel rendered="#{searchBean.activeTab2}">
<div class="formline">
<div class="formLabelGrueso">
<h:outputText value="#{msgs['search.height']}" />
</div>
<div class="formTextCorto oblig">
<h:inputText value="#{searchBean.form.height}" required="true" label="#{msgs['search.height']}" maxlength="6">
<f:validateDoubleRange minimum="50.00" maximum="300.00" />
</h:inputText>
</div>
<div class="formLabelGrueso">
<h:outputText value="#{msgs['searchBean.weight]}" />
</div>
<div class="formTextCorto">
<h:inputText value="#{searchBean.form.weight}" label="#{msgs['searchBean.weight]}" maxlength="6">
<f:validateDoubleRange minimum="1.00" maximum="199.00" />
</h:inputText>
</div>
</div>
<a4j:commandButton action="#{searchBean.advancedSearch}" execute="@this" id="buttonDefault"
render="searchPanel" value="#{msgs['user.button.search']}"></a4j:commandButton>
</a4j:outputPanel>
</<a4j:outputPanel>
</h:form>
В ManagedBean управляется пружинный каркас со следующим кодом:
@Component
@Scope(WebApplicationContext.SCOPE_SESSION)
public class SearchBean{
private boolean activeTab;
private boolean activeTab2;
....
}
, когда я представить, работает на сервере # {searchBean.activeTab} и {#} searchBean.activeTab2 методов. Почему оба метода выполняются, когда действительно только делает вызов ajax, который отображает панель «SearchPanel» ?. Не следует запускать только метод # {searchBean.activeTab2}.
Спасибо.
Проблема не в теге, если изменить на . Оба метода все еще работают при выполнении вызова ajax. –
oasgar