Я хочу использовать класс ManagedBean, Users.java, для создания 2 экземпляров бинов с разными областями действия.Я пытался сделать это двумя способами:
1.Используйте аннотации ManagedBean и SessionScope для пользователей (это создает «пользователей» с областью действия сеанса) и объявите в Face-config.xml другой объект MenagedBean от пользователя с областью запроса.
@ManagedBean
@Component
@SessionScoped
public class Users implements Serializable {...}
Примечание: «Компонент"Это из среды Spring, это может быть проигнорировано на данный момент.
В Face-config.xml:
<managed-bean>
<managed-bean-name>newUser</managed-bean-name>
<managed-bean-class>ro.telacad.model.Users</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
На странице входа я использую" # {users.} "внутри.В этом случае логин работает нормально (сделано с помощью Spring Security).Я также создал страницу «Зарегистрироваться», и там мне нужен компонент «Пользователи» с областью запроса для создания нового пользователя в базе данных, «# {newUser.}».Я помещаю точку останова в метод, и когда приложение останавливается там, все атрибуты этого объекта равны нулю, и приложение выдает исключение NullPointerException.
2.Удалите аннотации «ManagedBean» и «SessionsScoped» из Users.java и объявите 2 управляемых bean-компонента в face-config.xml:
<managed-bean>
<managed-bean-name>currentUser</managed-bean-name>
<managed-bean-class>ro.telacad.model.Users</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>newUser</managed-bean-name>
<managed-bean-class>ro.telacad.model.Users</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
Конечно, на этот раз я использую на странице входа и на странице приветствия"#{текущий пользователь.}".На этот раз исключение NullPointerException выдается в обоих случаях (вход в систему и регистрация).
Загружен файл face-config.xml.Я протестировал это, создав класс TempBean.java с 1 атрибутом и 1 методом, объявив управляемый bean-компонент этого класса в face-config.xml и используя его в форме ah :.Это сработало.