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 閱讀(248) 評論(0)  編輯  收藏 所屬分類: Struts2

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 洛浦县| 康保县| 阜新| 祁东县| 重庆市| 迁西县| 永康市| 芜湖县| 通化市| 运城市| 华阴市| 隆德县| 通城县| 凤山县| 高青县| 右玉县| 江津市| 四平市| 色达县| 搜索| 错那县| 新沂市| 西贡区| 周口市| 台北县| 依兰县| 香格里拉县| 江陵县| 洛扎县| 镇坪县| 固原市| 石景山区| 明水县| 理塘县| 英德市| 平乐县| 郯城县| 江北区| 铅山县| 汤原县| 洛浦县|