gdufo

           

          實戰Struts-Menu(3)

           插入測試數據:
          INSERT INTO menu_item
              (id
          , parent_name, name, title, titleCN, location)
          VALUES
              (
          1,null,'DatabaseMenu','Database Menu','數據庫動態菜單',null),
              (
          2,'DatabaseMenu','Yahoo','Yahoo Mail','雅虎郵件','http://mail.yahoo.com'),
              (
          3,'DatabaseMenu','JavaBlogs','JavaBlogs','Java博客','http://javablogs.com'),
              (
          4,null,'StandaloneMenu','Standalone Menu','獨立的菜單','http://www.sohu.com')
          > 將數據庫驅動程序放到lib目錄中,并加入到Build Path,如MySQL的數據庫驅動mysql-connector-java-3.1.8-bin.jar,解壓縮commons- collections-3.1.zip,將commons-collections-3.1.jar釋放到lib目錄,并加入Build Path
            > 新建一個Struts的Action,代碼如下:

          package cn.appex.menu;

          import java.io.UnsupportedEncodingException;
          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.PreparedStatement;
          import java.sql.ResultSet;
          import java.sql.SQLException;
          import java.util.ArrayList;
          import java.util.HashMap;
          import java.util.ListResourceBundle;
          import java.util.Map;

          import com.mysql.jdbc.Driver;

          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 net.sf.navigator.menu.PermissionsAdapter;

          import org.apache.struts.action.Action;
          import org.apache.struts.action.ActionForm;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.ActionMapping;

          public class MenuAction extends Action {
              
          public ActionForward execute(ActionMapping mapping, ActionForm form,
                      HttpServletRequest request, HttpServletResponse response)
                      
          throws Exception {
                  buildMenuRepository(request);
                  buildMenuResourceBundle(request);
                  buildMenuPermissions(request);
                  
          return (mapping.findForward("success"));
              }

              
          /**
               * 創建菜單數據結構
               * 
               * 
          @param request
               
          */
              
          private void buildMenuRepository(HttpServletRequest request) {
                  MenuRepository repository 
          = new MenuRepository();
                  
          // Get the repository from the application scope - and copy the
                  
          // DisplayerMappings from it.
                  MenuRepository defaultRepository = (MenuRepository) request
                          .getSession().getServletContext().getAttribute(
                                  MenuRepository.MENU_REPOSITORY_KEY);
                  repository.setDisplayers(defaultRepository.getDisplayers());

                  Map[] menus 
          = getMenuComponents();
                  
          for (int i=0; i < menus.length; i++) {
                      MenuComponent mc 
          = new MenuComponent();
                      Map row 
          = menus[i];
                      String name 
          = (String) row.get("name");
                      mc.setName(name);
                      String parent 
          = (String) row.get("parent_name");
                      System.out.println(name 
          + ", parent is: " + parent);
                      
          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) row.get("title");
                      mc.setTitle(title);
                      String location 
          = (String) row.get("location");
                      mc.setLocation(location);
                      String description 
          = (String) row.get("description");
                      mc.setDescription(description);
                      repository.addMenu(mc);
                  }
                  
                  request.setAttribute(
          "examplesRepository", repository);
              }

          posted on 2008-08-05 15:02 gdufo 閱讀(254) 評論(0)  編輯  收藏 所屬分類: Struts2

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南投市| 稻城县| 剑阁县| 新密市| 西昌市| 镇赉县| 车致| 潞西市| 保康县| 巴青县| 绩溪县| 咸丰县| 盈江县| 兰坪| 西乡县| 且末县| 高台县| 淅川县| 遵义市| 阳朔县| 梁山县| 施甸县| 小金县| 措勤县| 都江堰市| 抚宁县| 宜州市| 仙居县| 河源市| 太谷县| 泽州县| 育儿| 望江县| 盐源县| 洛扎县| 沙河市| 五大连池市| 正蓝旗| 侯马市| 沧州市| 朔州市|