У меня есть управляемый боб, который называется bean1.java
, который имеет булевский переменный, называемый found
. Переменная говорит, был ли найден клиент или нет.jsf переменная потерянное значение
У компонента есть метод validate()
, который отправляется в БД и проверяет, существует ли клиент, и устанавливает переменную в found=true
, если она существует, или «false», если она не установлена.
Затем я продолжаю заполнять другие поля в своей форме. Теперь, когда я нажимаю кнопку save, это метод saving()
. Этот метод должен выполнить действие, если var found
является истинным и другим действием, если оно ложно.
Но проблема в том, что я проверяю переменную, которая была установлена в true для метода validate()
, теперь она имеет значение «false».
@ManagedBean
@ViewScoped //SessionScoped
public class AgregarPoliza implements Serializable{
public boolean found=false;
public void validate(){
// go to data base and validate if the client exist, when exist
// set variable true
found = true; // setFound(true); <--- i already try this way too
}
public void saving(){
//it has two actions to do but need to know the value of found
System.out.println("my var found has" + found); //this system.out shows false
if(found ==true){
//makes an action
}
else{
//makes another action
}
}
//get and set of the value found
}
Пожалуйста, покажите свою страницу JSF и исправьте опечатки в вашем java-коде bean. – elbuild
Единственная причина, по которой 'found = false' снова возникает, когда восстанавливается компонент. Убедитесь, что компонент не уничтожается и не воссоздается, добавив некоторые записи в конструктор для компонента. – kolossus