Я использую JSF Mojarra 2.1.13, PrimeFaces 3.5 и Spring 3.2.3 для своего приложения. Для DI я использую подход Spring (не CDI). Я следую руководству по демонстрациям PrimeFaces с коллекционером: http://www.primefaces.org/showcase/ui/collector.jsfСвойства бина доступны для разных сеансов
Все работает нормально, я могу добавить свои значения в список, получить их и т. Д. Проблема в том, что, например, если я открою два браузера и добавлю некоторые значения в список, то в другом браузере я добавлю несколько значений, а если обновить браузер, я увижу все значения, которые были введены в обоих браузерах. Поэтому, если я ввожу два значения в один браузер два в другом, после обновления их я вижу четыре значения в обоих браузерах. Я хочу, чтобы мои ценности не делились между разными сеансами.
Мой боб выглядит следующим образом:
@Component
@ManagedBean
public class ClientBean extends BaseBean {
private Client client = new Client();
private List<Client> clients = new LinkedList<>();
public String reInit() {
client = new Client();
return null;
}
public Client getClient() {
return client;
}
public void setClient(Client client) {
this.client = client;
}
public List<Client> getClients() {
return clients;
}
public void setClients(List<Client> clients) {
this.clients = clients;
}
}
Я знаю, что я создаю глобальные переменные:
private Client client = new Client();
private List<Client> clients = new LinkedList<>();
Но это показано в руководстве. Итак, как я могу справиться с этой ситуацией, чтобы сделать коллекционную работу так, чтобы эти переменные не были доступны для разных сеансов?
EDIT Я попытался аннотирования мой боб с: @RequestScoped
или @SessionScoped
- не работает. Та же проблема остается.
Это большие ответов. Я только начинаю работать с JSF с Spring. Я не знал, что у меня может быть область просмотра с Spring. Причина, по которой я использую ManagedBean с компонентом, заключается в том, что компонент служит для назначения Spring DI и из ManagedBean. Я могу отображать значения в представлении. Я бы не смог использовать его в тегах JSF, если бы он не был аннотирован с помощью ManagedBean. Но да, теперь ясно. Огромное спасибо! – user2219247
@ user2219247 добро пожаловать. –