日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Struts-Menu使用指南-abin工作室-搜狐博客

 funronglei 2006-12-21
Struts-Menu使用指南

一、介紹
Struts-menu是一個基于Struts框架的菜單生成應用框架,它是開源軟件,可以從http://www.上獲得。Struts-menu在沒有權限控制時最簡單,只需配置文件就可以生成需要的菜單;在要菜單權限控制時,可以和Tomcat(或其他J2EE容器)的認證機制結合實現(xiàn)權限控制,也可以利用后臺數(shù)據(jù)庫的方式實現(xiàn)權限控制。
       從獲得Struts-menu后,將其解壓,可以得到如下圖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為當點擊此項時所要執(zhí)行的操作,如此處當點擊“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>
 
 
--------

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多