JSF 角色示例

JSF教程 – JSF角色示例

以下代码显示了如何在JSF应用程序中检查用户角色。

例子

以下代码来自demo.xhtml。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"   
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      >

   <f:event listener="#{user.isAdmin}" type="preRenderView" />

  <h:body>

      <h1>JSF 2 protected page example</h1>

  </h:body>

</html>

下面的代码来自UserBean.java。

package cn.w3cschool.common;

import javax.faces.application.ConfigurableNavigationHandler;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;

@ManagedBean(name="user")
@SessionScoped
public class UserBean{

  public void isAdmin(ComponentSystemEvent event){

    FacesContext fc = FacesContext.getCurrentInstance();

    if (!"admin".equals(fc.getExternalContext().getSessionMap().get("role"))){
      ConfigurableNavigationHandler nav 
      = (ConfigurableNavigationHandler) 
        fc.getApplication().getNavigationHandler();

      nav.performNavigation("access-denied");
    }

  }

}

以下代码来自access-denied.xhtml。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"   
      xmlns:h="http://java.sun.com/jsf/html"
      >

    <h:body>

      <h1>Access Denied!</h1>

    </h:body>

</html>

下载 Role.zip

运行

将生成的WAR文件从目标文件夹复制到Tomcat部署文件夹,并运行Tomcat-Install-folder/bin/startup.bat。

Tomcat完成启动后,在浏览器地址栏中键入以下URL。

http://localhost:8080/simple-webapp/demo.xhtml
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《JSF 角色示例》
文章链接:https://zhuji.vsping.com/293364.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。