`
kang275284
  • 浏览: 165344 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Struts-menu 权限控制

阅读更多
基本配置我就不多说了,网上多的很,我这里只说一下具体实现,呵呵
 
采用Struts+Hibernate
一、新建菜单表:表根据配置文件自己建吧,我这里就不写了
二、建立表对应的Hibernate的配置文件及JAVABEAN
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="com.wz.hibernate.Menu" table="menu" catalog="gknews">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="parent" type="java.lang.String">
            <column name="parent" not-null="true" />
        </property>
        <property name="name" type="java.lang.String">
            <column name="name" length="45" not-null="true" />
        </property>
        <property name="target" type="java.lang.String">
            <column name="target" length="45" not-null="true" />
        </property>
    </class>
</hibernate-mapping>
package com.wz.hibernate;
 
publicclass Menu implements java.io.Serializable {
 
     private Integer id;
     private String parent;
     private String name;
     private String target;
 
    /**defaultconstructor*/
    public Menu() {
    }
    /**fullconstructor*/
    public Menu(String parent, String name, String target) {
        this.parent = parent;
        this.name = name;
        this.target = target;
    }  
    // Property accessors
    public Integer getId() {
        returnthis.id;
    }   
    publicvoid setId(Integer id) {
        this.id = id;
    }
    public String getParent() {
        returnthis.parent;
    }   
    publicvoid setParentId(String parent) {
        this.parent = parent;
    }
    public String getName() {
        returnthis.name;
    }   
    publicvoid setName(String name) {
        this.name = name;
    }
    public String getTarget() {
        returnthis.target;
    }   
    publicvoid setTarget(String target) {
        this.target = target;
}
}
三、ActionForm
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.wz.struts_menu.struts.form;
 
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class TestMenuForm extends ActionForm {
  
   private String parent;
   private String title;
   private String target;
   private Integer id;
   public ActionErrors validate(ActionMapping mapping,
           HttpServletRequest request) {
       // TODO Auto-generated method stub
       return null;
   }
   public void reset(ActionMapping mapping, HttpServletRequest request) {
       // TODO Auto-generated method stub
   }
   public String getParent() {
       return parent;
   }
   public void setParentId(String parent) {
       this.parent = parent;
   }
   public String getTitle() {
       return title;
   }
   public void setTitle(String title) {
       this.title = title;
   }
   public String getTarget() {
       return target;
   }
   public void setTarget(String target) {
       this.target = target;
   }
   public Integer getId() {
       return id;
   }
   public void setId(Integer id) {
       this.id = id;
   }
}
四、Action
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.wz.struts_menu.struts.action;
 
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
import net.sf.navigator.menu.MenuComponent;
import net.sf.navigator.menu.MenuRepository;
 
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
 
import com.wz.hibernate.Menu;
import com.wz.hibernate.MenuItem;
import com.wz.hibernate.SessionFactory;
import com.wz.struts_menu.struts.form.TestMenuForm;
public class TestMenuAction extends Action {
  
   public ActionForward execute(ActionMapping mapping, ActionForm form,
           HttpServletRequest request, HttpServletResponse response) {
       TestMenuForm testMenuForm = (TestMenuForm) form;// TODO Auto-generated method stub
      
       Session session=SessionFactory.getSession();
       //创建事务
       Transaction tx=session.beginTransaction();
       //创建对话
       Query query=session.createQuery("FROM Menu m order by id");
       List list=query.list();
       //事务提交
       tx.commit();
      
       if(list.size()<0)
           return mapping.getInputForward();
      
       MenuRepository repository = new MenuRepository();
      
       HttpSession httpsession=(HttpSession)request.getSession();
      
       ServletContext application=(ServletContext)httpsession.getServletContext();
      
       MenuRepository defaultRepository = (MenuRepository)application.getAttribute(MenuRepository.MENU_REPOSITORY_KEY);
      
       repository.setDisplayers(defaultRepository.getDisplayers());
      
        for (int i=0; i < list.size(); i++) {
           
            MenuComponent mc = new MenuComponent();
           
            Menu mi=(Menu) list.get(i);
           
            String name = mi.getName();    
            mc.setName(name);
           
            String parent = (String) mi.getParentId();
           
            if (parent != null) {
                MenuComponent parentMenu = repository.getMenu(parent);
               
                if (parentMenu == null) {
                 
                    System.out.println("parentMenu '" + parent + "' doesn't exist!");
                    // create a temporary parentMenu
                    parentMenu = new MenuComponent();
                    parentMenu.setName(parent);
                    repository.addMenu(parentMenu);
                }
                mc.setParent(parentMenu);
            }
            String title = (String)mi.getName();
            mc.setTitle(title);
            String location = (String) mi.getTarget();
            mc.setLocation(location);
            repository.addMenu(mc);
       }
        request.setAttribute("repository", repository);
       return mapping.findForward("okGo");
   }  
}
 
五、JSP
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%@ taglib uri="/WEB-INF/struts-menu.tld" prefix="menu" %>
<%@ taglib uri="/WEB-INF/struts-menu-el.tld" prefix="menu-el" %>
<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang=&quo
分享到:
评论

相关推荐

    struts-menu文件

    7. **权限控制**:Struts-menu支持与Spring Security或Apache Shiro等权限管理框架集成,可以实现菜单项的动态显示,根据用户的权限来决定哪些菜单可以被看到或点击。 8. **自定义扩展**:除了基本功能,开发者还...

    Struts-Menu实例教程

    通过模型-视图-控制器(MVC)架构,Struts帮助开发者分离业务逻辑和表现层,促进代码的可维护性和可测试性。 2. **Struts-Menu简介** Struts-Menu是一个插件,专为Struts框架设计,用于生成HTML、XML或JSON格式的...

    struts-menu集成struts2.3.1例子以及注意的地方

    Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发。Struts2.3.1是该框架的一个版本,它提供了很多改进和新特性,旨在提升开发效率和应用程序的稳定性。这个例子主要关注的是如何将`struts...

    使用Struts-menu轻松实现网页菜单.doc

    它不仅提供了多种样式的菜单,如下拉菜单(`DropDownMenu`)、简单菜单(`SimpleMenu`)、酷炫菜单(`CoolMenu`)、权限表单菜单(`PermissionsFormMenu`)、列表菜单(`ListMenu`)、标签式菜单(`TabbedMenu`)、...

    struts-menu权限按钮(项目例子)

    Struts-menu是一个专门为Struts框架设计的权限管理组件,它为Web应用提供了灵活且强大的菜单构建和权限控制功能。在实际的项目开发中,权限控制是必不可少的一部分,它确保了不同用户只能访问他们被授权的功能和数据...

    struts-menu例子

    - **权限控制**:结合Spring Security或Struts2的拦截器实现菜单的动态显示,根据用户权限过滤菜单项。 - **优化性能**:考虑缓存策略,减少每次请求时的菜单构建开销。 - **响应式设计**:针对不同的设备(如...

    Struts-menu例子加视频

    6. **集成与扩展**:Struts-menu可以轻松集成到现有的Struts应用中,同时也允许开发者进行扩展,例如添加新的菜单样式、行为或者与第三方权限框架的整合。 7. **实践应用**:通过提供的例子,学习者可以了解如何在...

    项目开发过程中使用Struts-menu

    6. **配置menu-config.xml**:这是Struts-menu的核心配置文件,定义了菜单的结构、显示样式和权限控制等。例如,`DropDownMenuDisplayer`、`SimpleMenuDisplayer`等都是不同的菜单显示方式,可以根据需要选择。 7. ...

    struts-menu-2.0

    此外,还可以通过Action和结果来控制菜单的动态生成,使其根据用户权限或特定条件进行变化。 范例代码通常会展示如何在JSP页面上使用Struts-menu标签库,比如`&lt;s:menu&gt;`标签,它允许你在页面上直接插入生成的菜单。...

    struts-menu实例

    在实际应用中,`strutsMenu`这个文件可能是整个实例的源码或者示例项目的打包文件。它可能包含了以下内容: - `struts-menu.xml`:配置文件,定义了菜单结构。 - `MenuAction.java`:可能是一个处理菜单逻辑的...

    Struts-menu源码分析(转贴).rar

    由于Struts-menu可能用于生成动态的用户权限相关的菜单,所以源码中可能会包含对用户角色和权限的判断逻辑。这部分内容可能涉及数据库查询、安全框架(如Spring Security)的集成等。 8. **性能优化**: 分析源码...

    struts-menu

    5. **权限控制**:通过集成Spring Security或其他权限框架,Struts-menu可以实现对菜单项的权限检查,确保用户只能访问他们被授权的功能。 6. **可扩展性**:Struts-menu的设计允许开发者添加新的菜单类型和行为,...

    struts-menu-2.4.3-src

    在实际开发中,Struts Menu 提供了动态生成菜单的能力,可以根据用户的权限和应用状态自动生成相应菜单,这在多用户角色和复杂权限控制的系统中尤其有用。同时,它支持国际化,可以方便地适应不同语言环境。此外,...

    权限控制(struts2+hibernate+spring+struts-menu+valuelist)

    本项目以"权限控制(struts2+hibernate+spring+struts-menu+valuelist)"为主题,采用一系列成熟的技术栈来实现这一目标。下面我们将深入探讨这些技术及其在项目中的应用。 首先,Struts2作为MVC框架,负责处理HTTP...

    Struts-Menu.jar

    4. **权限控制**:StrutsMenu支持基于角色的访问控制(RBAC),可以通过配置指定只有拥有特定角色的用户才能看到或访问某些菜单项。 5. **定制**:StrutsMenu的灵活性很高,开发者可以通过自定义样式和JavaScript来...

    xtree一个关于Struts-menu的项目

    Struts-menu在没有权限控制时最简单,只需配置文件就可以生成需要的菜单;在要菜单权限控制时,可以和Tomcat(或其他J2EE容器)的认证机制结合实现权限控制,也可以利用后台数据库的方式实现权限控制。

    Struts——Menu示例教程

    6. **动态Menu**:为了提高灵活性,还可以考虑实现动态生成Menu的功能,这可能涉及到权限控制,即根据用户角色和权限动态决定哪些菜单项可见。 在提供的文件列表中,"速动画教程第十四集.exe"和"速动画教程第十四集...

    基于数据库的struts-menu.rar

    Struts使用MVC(Model-View-Controller)设计模式,将业务逻辑、用户界面和控制逻辑分离。Controller部分由Struts框架提供,它处理HTTP请求,并调用相应的Action来执行业务逻辑,然后将结果模型传递给View进行展示。...

    J2EE 0.4—加入批量CRUD功能、加入框架页面、加入struts-menu等

    在本项目中,"J2EE 0.4—加入批量CRUD功能、加入框架页面、加入struts-menu"是一个关于使用Java企业版(J2EE)开发应用程序的升级过程。这个过程涉及到几个关键的技术点,包括批量创建、读取、更新和删除(CRUD)...

Global site tag (gtag.js) - Google Analytics