当用户登录我的网站时,我想显示一个带有用户菜单的div,其中包含他的收件箱,通知等。我是否必须使用JAAS和JSF来完成此操作?最好的方法是什么?如果你可以指出我正确的方向或者一些教程,或者有一些奇特的方法来做这个而不是使用render属性。提前谢谢。
答案 0 :(得分:2)
如果您的安全要求并不复杂,那么在没有Jass的情况下执行此操作的简单方法是使用会话范围的bean 来获取用户详细信息。
您将登录的\ logs数据提供给用户的div将由此bean控制。
您不必使用渲染,具体取决于您希望向用户显示的内容。
例如,向用户发送的消息可以始终显示为
<h:outputText value="#{UserSession.userMessage}">
即使用户已退出。
但我会考虑使用render属性。
希望这有帮助
添加了一个简单的会话bean示例。 您可以向bean添加详细信息,但我建议添加所需的最低要求。 从这个bean你将能够监视用户。
来自java的:
SessionBean session = (SessionBean)FacesUtils.findBeanInSession("SessionBean");
来自jsf文件,在其属性上使用render。我添加了getLoggedIn方法作为示例。
java class:
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 :(得分:1)
HI,
首先,您必须对用户进行身份验证,并确定用户访问该应用程序的权限。因为这可能会在后台bean中设置像flag这样的变量。那应该映射到特定组件的render属性。
这是我们如何根据用户权限显示页面的想法。