-
在struts2中使用struts-menu生成动态树遇到问题!20
使用xml做为动态树的数据源
xml如下:<?xml version="1.0" encoding="utf-8"?> <root> <menu> <id>1</id> <name>test</name> <parent_name></parent_name> <title>tes</title> <location>/test.jsp</location> <target>main</target> </menu> </root>
action代码如下,使用dom4j解析xml:public String execute() throws Exception { ArrayList<Map> ary=new ArrayList<Map>(); Document doc=getDocument(getRoleXML()); //获取xml Element roleTree = doc.getRootElement(); Iterator users_role = roleTree.elementIterator(); while(users_role.hasNext()){ Element role = (Element)users_role.next(); Map temp=new HashMap(); temp.put("id",role.elementTextTrim("id")); temp.put("name",role.elementTextTrim("name")); temp.put("parent_name",role.elementTextTrim("parent_name")); temp.put("title",role.elementTextTrim("title")); temp.put("location",role.elementTextTrim("location")); temp.put("location",role.elementTextTrim("target")); ary.add(temp); } ServletContext sc = request.getSession().getServletContext(); MenuRepository repository = new MenuRepository(); MenuRepository defaultRepository = (MenuRepository)sc.getAttribute(MenuRepository.MENU_REPOSITORY_KEY); repository.setDisplayers(defaultRepository.getDisplayers()); ArrayList result=ary; Iterator iterator=result.iterator(); int id=0; while(iterator.hasNext()){ MenuComponent mc = new MenuComponent(); Map row=(Map)result.get(id); String name=(String)row.get("name"); mc.setName(name); String parent=(String)row.get("parent_name"); if (parent != null) { MenuComponent parentMenu = repository.getMenu(parent); if (parentMenu == null) { 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 target=(String) row.get("target"); mc.setTarget(target); repository.addMenu(mc); iterator.next(); id++; } sc.setAttribute("repository", repository); return SUCCESS; }
jsp代码如下:<div class="container"> <script type="text/javascript"> <menu:useMenuDisplayer name="Velocity" config="../templates/xtree.html" repository="repository"> <c:forEach var="menu" items="${repository.topMenus}"> <menu-el:displayMenu name="${menu.name}"/> </c:forEach> </menu:useMenuDisplayer> </script> </div>
但是始终报错如下:
javax.servlet.ServletException: The menu repository could not be found.
请求帮助,谢谢!!2008年6月18日 10:24
目前还没有答案
相关推荐
同时,社区的支持和文档可以帮助开发者解决在使用过程中遇到的问题。 总之,Struts-menu为基于Struts的Web应用提供了强大的菜单管理功能,通过合理的配置和资源组织,可以创建出美观、易用且动态的菜单系统,极大地...
Struts-Menu是一个基于Apache Struts框架的菜单生成库,它可以帮助开发者轻松地在Web应用中创建动态、可配置的菜单结构。这个实例教程将深入介绍如何使用Struts-Menu来构建用户界面的导航系统。 1. **Struts框架...
2. **配置插件**:在`struts-config.xml`中添加插件配置,指定菜单配置文件路径。 3. **创建菜单配置文件**:在`WEB-INF`目录下新建`menu-config.xml`,定义菜单类型和具体菜单。 #### 菜单配置详解 `menu-config....
5. **使用`struts-menu`标签**:在JSP页面中,使用`struts-menu`提供的标签来渲染菜单。这些标签会根据配置的数据源生成HTML代码。 6. **注意事项**:集成过程中可能会遇到的问题包括版本兼容性、资源加载问题、...
2. **TLD文件放置**:将`struts-menu.tld`文件也放入`WEB-INF/lib`目录,这个文件定义了标签库,使得可以在JSP页面中使用Struts-menu的标签。 3. **资源文件拷贝**:将`struts-menu.war`中的`scripts`、`styles`和`...
在Struts-menu中,menu部分主要负责页面导航和菜单的生成,它与Struts的Action和ActionForm组件协同工作,提供了更方便的方式来管理和呈现网站的菜单结构。 Hibernate是一个强大的对象关系映射(ORM)框架,它简化...
Struts-menu是一个基于Java的开源项目,用于在Struts框架中生成动态菜单。这个例子是Struts-menu的一个实例,提供给需要了解或使用Struts-menu的开发者参考。下面将详细介绍Struts-menu及其在实际开发中的应用,以及...
3. **渲染**:在JSP页面中,通过StrutsMenu提供的标签库(Taglib)来渲染生成的菜单。这些标签可以根据用户的角色和权限动态显示或隐藏菜单项。 4. **权限控制**:StrutsMenu支持基于角色的访问控制(RBAC),可以...
使用Struts-menu-2.0时,开发者通常需要在Struts配置文件(struts.xml)中添加对应的插件配置,声明菜单的源(例如XML或数据库),以及定义菜单的样式和行为。菜单的结构可以通过XML文件来定义,这样可以方便地进行...
在实际开发中,Struts Menu 提供了动态生成菜单的能力,可以根据用户的权限和应用状态自动生成相应菜单,这在多用户角色和复杂权限控制的系统中尤其有用。同时,它支持国际化,可以方便地适应不同语言环境。此外,...
2. **配置文件**:在Struts-menu的应用中,需要配置struts-config.xml文件,定义菜单结构和行为。这个配置文件通常包含菜单的层次结构、链接地址、权限控制等信息。 3. **JSP和Taglib**:Struts-menu利用JSP(Java...
在实际应用中,`strutsMenu`这个文件可能是整个实例的源码或者示例项目的打包文件。它可能包含了以下内容: - `struts-menu.xml`:配置文件,定义了菜单结构。 - `MenuAction.java`:可能是一个处理菜单逻辑的...
在项目中,struts-menu会基于用户的角色和权限信息,生成仅包含用户有权访问的菜单,这样可以确保用户界面的简洁性和安全性。 最后,valuelist是实现信息分页的一种机制,它帮助在大量数据列表中分页展示结果,提升...
在Struts框架中,开发者通常会遇到如何根据用户角色动态生成前端菜单和操作按钮的问题。Struts-menu通过与后台数据库或配置文件中的权限信息交互,实现了这一目标,使得前端界面能够自动地根据用户权限进行适配。 ...
在本项目中,我们探讨的是如何利用Struts2框架和AJAX技术动态地从数据库中获取数据,并生成交互式的树形菜单。树形菜单在Web应用中常见于导航系统,因为它能清晰地展示层次结构,方便用户浏览和操作。 首先,让我们...
本教程将深入探讨如何在Struts项目中实现和使用Menu。 首先,理解MVC模式至关重要。MVC模式将应用程序分为三个主要部分:模型(Model)处理业务逻辑,视图(View)负责展示数据,控制器(Controller)接收用户请求...
接下来,我们探讨如何在实际项目中使用Struts-menu: 1. **安装和引入**:首先,你需要将struts-menu的依赖库添加到项目的类路径中,这通常是通过Maven或Gradle的依赖管理完成的。 2. **配置菜单**:创建一个XML...
Struts-menu是一个在Java Web开发中用于生成动态菜单的开源组件,主要应用于基于Struts框架的应用程序。这个组件能够帮助开发者从XML配置文件中提取数据,生成用户界面的菜单结构,使得应用程序的导航部分更加灵活和...
Struts-menu是一个基于Apache Struts框架的菜单管理组件,它为Web应用提供了动态生成和管理菜单的功能。在分析Struts-menu的源码时,我们可以深入理解Struts框架的工作原理、MVC模式的应用以及如何实现自定义标签库...