seasun  
          在不斷模仿、思考、總結中一步一步進步!
          公告
          •     我的blog中的部分資源是來自于網絡上,如果您認為侵犯了您的權利,請及時聯系我我會盡快刪除!E-MAIL:shiwenfeng@aliyun.com和QQ:281340916,歡迎交流。

          日歷
          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          常用鏈接

          隨筆分類

          good blog author

          積分與排名

          • 積分 - 81738
          • 排名 - 700

          最新評論

          閱讀排行榜

           

          一、介紹
                  Struts-menu是一個基于Struts框架的菜單生成應用框架,它是開源軟件,可以從http://www.sourceforge.net上獲 得。Struts-menu在沒有權限控制時最簡單,只需配置文件就可以生成需要的菜單;在要菜單權限控制時,可以和Tomcat(或其他J2EE容器)的認證機制結合實現權限控制,也可以利用后臺數據庫的方式實現權限控制。
                 從sourceforge.net獲得Struts-menu后,將其解壓,可以得到如下圖1所示的一些文件:

          1. 其中struts-menu-2.3.jar為其核心包,struts-menu.tld為其對應的標簽;struts-menu.war為Struts-menu自帶的sample;doc目錄下為幫助文檔。

            二、使用Struts-menu(無權限控制)
            1.        將struts-menu.jar拷貝到WEB-INFlib目錄下;
            2.        將struts-menu.tld拷貝到WEB-INF目錄下;
            3.        將struts-menu.war中的scripts、styles、images目錄拷貝到你的應用"/"目錄下;
            4.        此外,Struts-menu需要Log4j的支持,因此需要將log4j的包也拷貝到WEB-INF/lib;
            5.        修改 web.xml 加入 taglib 的調用:
            <taglib>
                <taglib-uri>/WEB-INF/struts-menu.tld</taglib-uri>
                <taglib-location>/WEB-INF/struts-menu.tld</taglib-location>
            </taglib>
            6.        修改struts-config.xml,在其中添加如下plugin代碼:
            <plug-in className="net.sf.navigator.menu.MenuPlugIn">
                <set-property property="menuConfig" value="/WEB-INF/menu-config.xml" />
            </plug-in>
            7.        配置menu-config.xml(此文件位于WEB-INF目錄下)
            <?xml version="1.0" encoding="UTF-8" ?>
            <MenuConfig>
            <Displayers>
            <Displayer name="CoolMenu" type="net.sf.navigator.displayer.CoolMenuDisplayer"/>
            <Displayer name="ListMenu" type="net.sf.navigator.displayer.ListMenuDisplayer"/>
            <Displayer name="DropDown" type="net.sf.navigator.displayer.DropDownMenuDisplayer"/>
            <Displayer name="Simple" type="net.sf.navigator.displayer.SimpleMenuDisplayer"/>
            <Displayer name="CoolMenu4" type="net.sf.navigator.displayer.CoolMenuDisplayer4"/>
            <Displayer name="MenuForm" type="net.sf.navigator.example.PermissionsFormMenuDisplayer"/>
            <Displayer name="TabbedMenu" type="net.sf.navigator.displayer.TabbedMenuDisplayer"/>
            <Displayer name="Velocity" type="net.sf.navigator.displayer.VelocityMenuDisplayer"/>
            </Displayers>
            <Menus>
             <!========  To Do List Menus   ==============>
              <Menu name="ToDoListMenuFile" title="OPERATOR" description="this is a file menu test" width="50" >
                <Item name="TDLnew" title="ADMIN">
                  <Item name="TDLnewcase" title="GO TO ADMIN PAGE" image="images/case-new.png" location="/webModule/admin/admin.jsp"/>
                  <Item name="TDLnewitem" title="NEW ITEM" image="images/item-new.png" location="index.jsp"/>
                  <Item name="TDLnewparty" title="NEW PARTY" image="images/party-new.png" location="index.jsp"/>
                    <Item name="TDLopen" title="OPEN">
                 <Item name="TDLopencase" title="OPEN CASE" image="images/case-open.png" location="index.jsp"/>
                  <Item name="TDLopenitem" title="OPEN ITEM" image="images/item-open.png" location="index.jsp"/>
                  <Item name="TDLopenparty" title="OPEN PARTY" image="images/party-open.png" location="index.jsp"/>
                </Item>
                <Item name="TDLexit" title="EXIT" image="images/exit.png" location="index.jsp"/>
              </Menu>
            <! ===========  To Do List Menu Edit   =============>
              <Menu name="ToDoListMenuEdit" title="EDIT">
                <Item name="TDLselect" title="SELECT_ALL" image="images/select-all.png" location="index.jsp" width="100"/>
                <Item name="TDLprefs" title="USER_PREFERENCES" image="images/prefs.png" location="index.jsp" width="150"/>
              </Menu>
            <!============  Permissions Menu   ==========>
              <Menu  name="Permissions" title="Permissions">
                <Item title="Change" location="permissionsForm.jsp?username='test'" />
              </Menu>
            </Menus>
            </MenuConfig>
              注解:
             <Displayers>與</Displayers>之間的代碼定義了菜單的格式。
            <Menus>與</Menus>之間的代碼定義了要顯示的菜單
            <Menu>與<Menu>之間的代碼具有定義一個菜單的各種屬性,如:
            <Menu name="ToDoListMenuFile" title="OPERATOR" description="this is a file menu test" width="50" >
                  其中name指定了在JSP頁面上顯示此菜單時使用的name,title屬性定義了菜單的顯示名稱,description屬性定義了當鼠標移動到此菜單上時顯示的描述信息,width屬性定義了此菜單所占的寬度。
            在<Menu>下的<Item/>標記用于定義此菜單的子項,如:
            <Item title="Change" location="permissionsForm.jsp?username='test'" />
            其中title為子項顯示的名稱,location為當點擊此項時所要執行的操作,如此處當點擊“Change”菜單時,它將轉向permissionsForm.jsp頁面。
            8.        在JSP頁面中加入如下代碼:
            <menu:useMenuDisplayer name="ListMenu" bundle="org.apache.struts.action.MESSAGE">
                <menu:displayMenu name="ToDoListMenuFile"/>
                      <menu:displayMenu name="ToDoListMenuEdit"/>
                <menu:displayMenu name="Permissions"/>
            </menu:useMenuDisplayer>
            注解:
            name屬性指定要顯示菜單的外觀樣式,由<Displayers></Displayers>中指定。
            bundle為顯示的菜單名稱,必須為org.apache.struts.action.MESSAGE。
            <menu:displayMenu />定義要顯示的菜單,此處的name為要顯示菜單的名稱,由<Menu/>指定。
            此外,對于各種不同的菜單外觀,需要引用其指定的CSS及JavaScript代碼。
                   效果如下圖所示:

          三、基于Tomcat的權限控制的菜單顯示
          在Struts中要啟用基于容器的安全認證:
          1.        需要在web.xml中進行配置(請參考Struts相關書籍):
          <security-constraint>
              <web-resource-collection>
                <web-resource-name>AdminPages</web-resource-name>
                <description>Administroat only access</description>
                <url-pattern>/security.jsp</url-pattern>
                <http-method>POST</http-method>
                <http-method>GET</http-method>
              </web-resource-collection>
              <auth-constraint>
                <role-name>tomcat</role-name>
                <role-name>role1</role-name>
                <role-name>admin</role-name>
              </auth-constraint>
            </security-constraint>
            <login-config>
              <auth-method>BASIC</auth-method>
              <realm-name>adminRealm</realm-name>
            </login-config>
            <security-role>
              <description>Administrator</description>
              <role-name>tomcat</role-name>
            </security-role>
            <security-role>
              <description>A Second Role (to prove a comma-delimited list works)</description>


          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/donkeyzheng/archive/2006/03/28/640821.aspx

          posted on 2009-10-30 17:03 shiwf 閱讀(445) 評論(0)  編輯  收藏 所屬分類: 1.10 struts-menu

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          Copyright © shiwf Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 红河县| 大宁县| 东方市| 樟树市| 会泽县| 津市市| 永城市| 来凤县| 勃利县| 花莲市| 台东市| 襄汾县| 滨州市| 清苑县| 永寿县| 长阳| 翼城县| 青海省| 靖西县| 永仁县| 酉阳| 博客| 平遥县| 彩票| 米泉市| 定结县| 玛沁县| 惠来县| 平潭县| 大连市| 垣曲县| 竹溪县| 麦盖提县| 南昌市| 和硕县| 广水市| 泸定县| 承德市| 临朐县| 荔波县| 屯留县|