Когда вы думаете о модификаторах доступа, просто подумайте об этом таким образом (применительно к обеим переменным и методам):
public
-> доступно из любого места private
-> доступно только в том же классе, где он объявлен
. Теперь возникает путаница, когда дело доходит до default
и protected
default
-> Нет ключевого слова модификатора доступа , Это означает, что он доступен строго в пакете класса. Нигде за пределами этого пакета он доступен.
protected
-> Чуть менее строже, чем default
, и кроме тех же классов пакетов, к ним могут обращаться под-классы вне пакета / g0] объявлено.
Просто добавьте <f:ajax>
. Он отправит значение, когда произошло событие HTML DOM change
(т. Е. Когда поле было отредактировано, а затем размыто).
<h:inputText value="#{myBean.in}">
<f:ajax />
</h:inputText>
Его атрибут event
по умолчанию имеет значение valueChange
, поэтому он опускается. Его атрибут execute
по умолчанию имеет значение @this
, поэтому он опущен. Если вы хотите обновить другой компонент, нажмите render
. Например,
<h:inputText value="#{myBean.in}">
<f:ajax render="msg" />
</h:inputText>
<h:message id="msg" />
Если вы хотите вызвать слушателя, когда он был успешно установлен, установите атрибут listener
:
<h:inputText value="#{myBean.in}">
<f:ajax listener="#{myBean.changeIn}" />
</h:inputText>
public void changeIn() {
System.out.println("in has been changed to " + in);
}