gdufo

 

实战Struts-Menu(4)

/**
     * 从数据库中读取菜单配置信息
     * 
     * 
@return
     
*/
    
private Map[] getMenuComponents() {
        ArrayList list 
= new ArrayList();
        Connection conn 
= null;
        PreparedStatement pstmt 
= null;
        ResultSet rest 
= null;
        String sql 
= "select name,parent_name,title,location,description from menu_item order by id";
        
try {
            Class.forName(
"com.mysql.jdbc.Driver").newInstance();
            conn 
= DriverManager.getConnection("jdbc:mysql://localhost/myexamples?user=root&password=mywangya&useUnicode=true&characterEncoding=UTF-8");
            pstmt 
= conn.prepareStatement(sql);
            rest 
= pstmt.executeQuery();
            
while (rest.next()) {
                
int i = 1;
                HashMap map 
= new HashMap();
                map.put(
"name", rest.getString(i++));
                map.put(
"parent_name", rest.getString(i++));
                map.put(
"title", rest.getString(i++));
                map.put(
"location", rest.getString(i++));
                map.put(
"description", rest.getString(i++));
                list.add(map);
            }
        } 
catch (SQLException ex) {
            ex.printStackTrace();
        } 
catch (InstantiationException e) {
            e.printStackTrace();
        } 
catch (IllegalAccessException e) {
            e.printStackTrace();
        } 
catch (ClassNotFoundException e) {
            e.printStackTrace();
        } 
finally {
            
try {
                
if (null!=rest) rest.close();
                
if (null!=pstmt) pstmt.close();
                
if (null!=conn) conn.close();
            } 
catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        
return (Map[]) list.toArray(new HashMap[0]);
    }
    
    
/**
     * 构造菜单权限
     * 
     * 
@param request
     
*/
    
private void buildMenuPermissions(HttpServletRequest request) {
        PermissionsAdapter permession 
= new PermissionsAdapter() {
            
public boolean isAllowed(MenuComponent menu) {
                
// 名称等于StandaloneMenu的菜单不显示
                return !"StandaloneMenu".equalsIgnoreCase(menu.getName());
            }
        };
        request.setAttribute(
"examplesPermession", permession);
    }

    
/**
     * 构造菜单显示标题
     * 
     * 
@param request
     
*/
    
private void buildMenuResourceBundle(HttpServletRequest request) {
        MenuResourceBundle resourceBundle 
= new MenuResourceBundle();
        request.setAttribute(
"examplesBundle", resourceBundle);
    }
    
    
/**
     * MenuResourceBundle树状菜单国际语言显示
     * 
     * 
@author wenbin.zhang
     *  
     
*/
    
class MenuResourceBundle extends ListResourceBundle {
        
private ArrayList list = new ArrayList();

        
public MenuResourceBundle() {
            Connection conn 
= null;
            PreparedStatement pstmt 
= null;
            ResultSet rest 
= null;
            String sql 
= "select title,titleCN from menu_item order by id";
            
try {
                Class.forName(
"com.mysql.jdbc.Driver").newInstance();
                conn 
= DriverManager.getConnection("jdbc:mysql://localhost/myexamples?user=root&password=mywangya&useUnicode=true&characterEncoding=UTF-8");
                pstmt 
= conn.prepareStatement(sql);
                rest 
= pstmt.executeQuery();
                
while (rest.next()) {
                    
int i = 1;
                    String[] message 
= new String[2];
                    message[
0= rest.getString(i++);
                    
try {
                        message[
1= new String(rest.getString(i++).getBytes("latin1"), "gbk");
                    } 
catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                    
if (message[0!= null && message[1!= null) {
                        list.add(message);
                    }
                }
            } 
catch (SQLException ex) {
                ex.printStackTrace();
            } 
catch (InstantiationException e) {
                e.printStackTrace();
            } 
catch (IllegalAccessException e) {
                e.printStackTrace();
            } 
catch (ClassNotFoundException e) {
                e.printStackTrace();
            } 
finally {
                
try {
                    
if (null!=rest) rest.close();
                    
if (null!=pstmt) pstmt.close();
                    
if (null!=conn) conn.close();
                } 
catch (SQLException e) {
                    e.printStackTrace();
                }
            }

        }

        
public Object[][] getContents() {
            
return (String[][]) list.toArray(new String[0][0]);
        }
    }
}

> 将struts-config.xml文件的<action-mappings />部分修改为:
<action-mappings>
  
<action path="/menuAction" type="cn.appex.menu.MenuAction" >
    
<forward name="success" path="/struts-menu/dynamic-menu.jsp" />
  
</action>
</action-mappings>

posted on 2008-08-05 15:05 gdufo 阅读(248) 评论(0)  编辑  收藏 所属分类: Struts2

导航

统计

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

Hibernate

友情链接

搜索

最新评论

阅读排行榜

评论排行榜