I use Struts-Menu 2.2 using the Velocity templates to customise and configure some dynamic functionality and appearance attributes for coolmenus4.
Our aim is for our customers to be able to fully configure their menu without having to edit JSP files. They will be able to edit Menu-config.xml I wan to add a new attribute to the xml called Type. The Type attribute is a property to allow the velocity macro to perform specific processing for the menu element. Ive looked over the code and thought all I needed to do was to add setters and getters for type to MenuBase.java Presumably Im missing something obvious somewhere. The digester doesnt use a DTD to consume the stuts-menu file so I thought that using reflection it would set the new property values? Does anyone have a helpful hint ? relevant code is below. public abstract class MenuBase { .....//other stuff .....//other stuff .....//other stuff protected String type; .....//other stuff public String getType() { return type; } .....//other stuff public void setType(String typ) { this.type = typ; } } My menu-config.xml <Menus> <Menu name="Contactusermenu" title="HOMEMENU" description="test" > <Item name="HomeMenu" title="HOMEMENU" description="test" forward="Main.Welcome" /> <Item name="ContactIncidentMenu" title="INCIDENTMENU" type="LogIncAllowed"> <Item name="PrinterFault" title="LOGPRINTERFAULT" forward="Incident.LogPrinterFault" /> <Item name="SoftwareFault" title="LOGSOFTWAREFAULT" forward="Incident.LogSoftwareFault" /> <Item name="GeneralFault" title="LOGGENERALFAULT" forward="Incident.LogGeneralFault" /> <Item name="LogIncident" title="LOGINCIDENT" forward="Incident.LogIncident" /> </Item> <Item name="ContactChangeMenu" title="REQUESTMENU" type="LogRFCAllowed"> <Item name="MoveFault" title="LOGMOVEFAULT" forward="Incident.LogMoveFault" /> <Item name="NewtstartFault" title="LOGNEWSTARTFAULT" forward="Incident.LogNewstartFault" /> <Item name="LogChange" title="LOGCHANGE" forward="Change.LogChange" /> </Item> <Item name="ViewMenu" title="VIEWMENU" description="test"> <Item name="EventMonitor" title="EVENTMONITOR" forward="Main.EventSearch" /> <Item name="KnowledgeBase" title="KNOWLEDGEBASE" forward="Main.KnowledgeBase" /> <Item name="AMSearch" title="ASSETSEARCH" forward="Asset.AssetSearch" image="../images/select-all.png"/> </Item> <Item name="HelpMenu" title="HELPMENU"> <Item name="AboutPage" title="ABOUTPAGE" forward="Help.About" /> <Item name="HelpPage" title="HELPPAGE" forward="Help.Main" target="_blank"/> </Item> <Item name="LogoutMenu" title="LOGOUTMENU" forward="Main.Logout" description="test"/> </Menu> </Menus> However I get the following errors in the initialisation of the struts-menu plugin. 16:57:42,822 ERROR [Engine] StandardContext[/assystTen]: Servlet /assystTen threw load() exception javax.servlet.ServletException: Failure initializing struts-menu: Error parsing resource file: /WEB-INF/menu-config.xml nested exception is: Error at (30, 80: LogIncAllowed at net.sf.navigator.menu.MenuPlugIn.init(MenuPlugIn.java:67) at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java: 1158) at org.apache.struts.action.ActionServlet.init(ActionServlet.java:473) at javax.servlet.GenericServlet.init(GenericServlet.java:256) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:93 5) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java: 3421) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3609) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:8 21) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579) at org.jboss.web.tomcat.tc4.EmbeddedTomcatService.createWebContext(EmbeddedTomc atService.java:530) at org.jboss.web.tomcat.tc4.EmbeddedTomcatService.performDeploy(EmbeddedTomcatS ervice.java:309) at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:428) at org.jboss.deployment.MainDeployer.start(MainDeployer.java:832) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:642) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605) at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispat cher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177) at $Proxy6.deploy(Unknown Source) at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanne r.java:302) at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner. java:476) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan( AbstractDeploymentScanner.java:201) at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(Abstract DeploymentScanner.java:274) at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:192) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispat cher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546) at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.jav a:976) at $Proxy0.start(Unknown Source) at org.jboss.system.ServiceController.start(ServiceController.java:394) at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispat cher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177) at $Proxy4.start(Unknown Source) at org.jboss.deployment.SARDeployer.start(SARDeployer.java:226) at org.jboss.deployment.MainDeployer.start(MainDeployer.java:832) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:642) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:605) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:589) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispat cher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:177) at $Proxy5.deploy(Unknown Source) at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:384) at org.jboss.system.server.ServerImpl.start(ServerImpl.java:291) at org.jboss.Main.boot(Main.java:150) at org.jboss.Main$1.run(Main.java:395) at java.lang.Thread.run(Thread.java:534) ********************************************************************** Axios Email Confidentiality Footer Privileged/Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not copy or deliver this message to anyone. In such case, you should destroy this message, and notify us immediately. If you or your employer does not consent to Internet email messages of this kind, please advise us immediately. Opinions, conclusions and other information expressed in this message are not given or endorsed by my Company or employer unless otherwise indicated by an authorised representative independent of this message. WARNING: While Axios Systems Ltd takes steps to prevent computer viruses from being transmitted via electronic mail attachments we cannot guarantee that attachments do not contain computer virus code. You are therefore strongly advised to undertake anti virus checks prior to accessing the attachment to this electronic mail. Axios Systems Ltd grants no warranties regarding performance use or quality of any attachment and undertakes no liability for loss or damage howsoever caused. ********************************************************************** ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click _______________________________________________ struts-menu-user mailing list [EMAIL PROTECTED] https://lists.sf.net/lists/listinfo/struts-menu-user