Вы должны либо использовать disabled
в качестве полевого добытчика, как в disabled="#{not recordsTransferSearch.disabled}"
, или если ваш EL поддерживает вызовы методов, т.е. версии 2.2+, вы должны добавить пустые круглые скобки, ()
, в конце вызова метода, как в disabled="#{not recordsTransferSearch.isDisabled()}"
.
Обратите внимание, что в его нынешнем виде, и в отличие от того, что вы предлагаете в комментариях, disabled="#{bean.isDisabled}"
будет вызывать Недвижимость 'isDisabled' не найден Ошибка.
В соответствии с вашими комментариями вы не в полной мере понять, как disabled
атрибут работает в JSF. Кажется, вы ожидаете, что кнопка будет включена/отключена на каком-то событии javascript и/или с помощью некоторых изменений, сделанных некоторыми методами action/actionlistener. Это не тот случай. Кнопка отключена/включена только тогда, когда EL выражение атрибута disabled
соответствует true/false соответственно. Вы даже можете проверить его: когда вы удаляете отключенный атрибут HTML input
, эффективно активизируя его на стороне клиента и вызывая эту кнопку, вы увидите, что не будет вызываться метод действия, но вместо этого его отключенный атрибут будет переоценен на сервере и, поскольку он будет оцениваться до false
, никакого метода не будет вызываться.
Чтобы заставить его работать, как ожидалось, вам необходимо засавить кнопку команды с помощью AJAX вызова (указав его идентификатор в reRender
атрибута другого <a4j:commandButton>
, что изменяет результат isDisabled()
метода так, что он будет возвращать false
), или синхронно (для обеспечения необходимой оценки disabled
), чтобы состояние отключения было оценено до false
.
Также было бы полезно ознакомиться с основным примером, чтобы понять, как все это работает.
Вид:
<h:form>
<h:commandButton id="disabled" value="Disabled command button"
action="#{bean.disabledSubmit}"
disabled="#{not bean.disabled}">
</h:commandButton>
<h:commandButton id="simple" value="Enable a disabled button"
action="#{bean.simpleSubmit}">
<f:ajax render="disabled"/>
</h:commandButton>
</h:form>
боб:
@ManagedBean
@ViewScoped
public class Bean implements Serializable{
private boolean searchResults = false;
public boolean isDisabled() {
return searchResults;
}
public String disabledSubmit() {
return null;
}
public String simpleSubmit() {
searchResults = true;
return null;
}
}
Если вы хотите обновление
@RongNK, который напрямую не связан с моей проблемой. – Switch