JSF адаптация веб-страницы в соответствии с разрешениями пользователя - PullRequest
1 голос
/ 28 января 2011

Когда пользователь заходит на мой веб-сайт, я хочу отобразить div с пользовательским меню, которое содержит его входящие, уведомления и т. Д. Нужно ли использовать JAAS с JSF для этого?Какой лучший способ сделать это?Если бы вы могли указать мне правильное направление или, может быть, какой-то учебник, или если есть какой-то причудливый способ сделать это вместо использования атрибута рендеринга.Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 28 января 2011

Если ваши требования безопасности не сложны, простой способ сделать это без Jass - использовать сессионный компонент для деталей пользователя.

Элемент div, в котором вы предоставляете пользователю данные для входа в систему \ для входа в систему, будет управляться этим компонентом.

вам не придется использовать рендер, в зависимости от того, что вы хотите отобразить пользователю.

например, сообщение пользователю может всегда отображаться как

<h:outputText value="#{UserSession.userMessage}"> 

, даже если пользователь вышел из системы.

Однако я хотел бы рассмотреть возможность использования атрибута render.

Надеюсь, это поможет

Добавлен простой пример сессионного компонента. Вы можете добавить детали к бобу, однако я бы предложил добавить необходимый минимум. из этого бина вы сможете следить за пользователем.

из Java:

SessionBean session = (SessionBean)FacesUtils.findBeanInSession("SessionBean");

из jsf-файлов, используя render для его атрибутов. я добавил метод getLoggedIn в качестве примера.

класс Java:

public class SessionBean implements Serializable{
    private static final long serialVersionUID = -867309384910092832L;

    private int     userRole;
    private int     userId;
    private String          userName;

    public boolean isLoggedIn ()
    {
        return userId>0 ;   
    }
}

Лица конфигурации:

<managed-bean>
        <managed-bean-name>SessionBean</managed-bean-name>
        <managed-bean-class>com.yourPackage.beans.SessionBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
1 голос
/ 28 января 2011

HI,

Сначала вы должны аутентифицировать пользователя и решить, какие права доступа у пользователя для доступа к приложению.Для этого может быть, у вас будут переменные, такие как флаг в бинах.Это должно быть сопоставлено с атрибутом рендеринга конкретного компонента.

Это идеальный способ отображения страниц на основе разрешения пользователя.

...