У меня есть простая страница авторизации, которая позволяет пользователю вводить логин и пароль. Основываясь на результатах пользовательского ввода, я определяю следующую страницу для отображения. У меня есть таблица в БД, которая содержит идентификатор, логин и пароль пользователя и роль пользователя, поэтому следующая страница будет определена на основе информации, которая будет извлечена из поля роли записи, которая соответствует введенному логину и паролю. Но у меня также есть таблица в db, которая содержит всю информацию о пользователе (около 10 полей) одного типа пользователей и другую таблицу, которая содержит информацию о другом типе пользователей (4 поля). Так что моя БД имеет такую структуру:
Table 1:
id
login
pass
role
Table 2:
id(reference to id of table 1)
other fields....
Table 3:
id(reference to id of table 1)
other info....
Я думаю, что мое приложение должно иметь управляемый компонент (requestScope) для авторизации, который будет принимать логин и пароль. Этот компонент будет иметь контроллер действий для отправки формы авторизации. В этом контроллере действий я должен определить роль пользователя и на основе этой информации создать управляемый bean-объект в рамках сеанса для конкретного типа пользователя (приложение будет иметь отдельный управляемый bean-компонент для разных типов пользователей). Также у меня есть в этом контроллере действий, чтобы передать конкретную информацию для установки сессионного компонента для пользователя (идентификатор пользователя). Но можно ли просто установить управляемый компонент области действия сеанса (с помощью оператора new
) в методе действия управляемого компонента управления областью запроса? Также, как я могу использовать методы одного сессионного bean-объекта в другом сессионном bean-объекте (предположим, что я создаю 2 управляемых bean-объекта сессионной области, которые отвечают за различные сервисы, как я могу вызвать метод одного в другом).
Может быть, описанный метод не подходит для такой проблемы? Если да, можете ли вы дать совет для лучшего подхода к дизайну?