Error messages display as follows. [ServletException in:/layout/menu.jsp] null' java.lang.ClassCastException at org.apache.jsp.layout.menu_jsp._jspService(menu_jsp.java:193) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) ... ...
after adding a few lines to test in the following class, public final class MyMenuAction extends TilesAction implements Controller { public ActionForward perform( ComponentContext context, ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { perform( context, request, response, getServlet().getServletContext() ); return null; } public void perform(ComponentContext context, HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) throws ServletException, IOException { List menuItems = (List) context.getAttribute("items"); // menuItems.add("customize1"); // this few lines menuItems.add("customize2"); // context.putAttribute("items", menuItems); // ... Struts-defs.xml: <definition name="erp.menu.home" path="/layout/menu.jsp" controllerClass="com.common.tiles.MyMenuAction" > <put name="title" value="Tiles" /> <putList name="items" > <item value="customize1" link="/Welcome1.jsp" /> <item value="customize2" link="/Welcome2.jsp" /> </putList> </definition> How can I add a few lines of creating a list to test the menu? Thanks On Tue, 26 Oct 2004 19:57:49 +0200, Mark Lowe <[EMAIL PROTECTED]> wrote: > To do what you want you want a tiles controller, not an action. > > import org.apache.struts.tiles.ComponentContext; > import org.apache.struts.tiles.ControllerSupport; > import org.apache.struts.tiles.beans.SimpleMenuItem; > import java.util.List; > import javax.servlet.ServletContext; > import javax.servlet.ServletException; > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > import javax.servlet.http.HttpSession; > > public class GroupController extends ControllerSupport { > public void execute(ComponentContext tileContext, > HttpServletRequest request, HttpServletResponse response, > ServletContext context) throws Exception { > > List menuItems = (List) context.getAttribute("items"); > > .. add some menu items. > > context.putAttribute("items", menuItems); > } > } > > I;d try and avoid using a tiles controller as exception handling is an > arse. Perhaps look at having a BaseAction that adds teh relevant items > into the request. > > public abstract class BaseAction extends Action { > > protected abstract ActionForward doExecute(ActionMapping mapping, > ActionForm form, HttpServletRequest request, > HttpServletResponse response) throws Exception; > > public ActionForward execute(ActionMapping mapping, ActionForm form, > HttpServletRequest request, HttpServletResponse response) > throws Exception { > .. > request.setAttribute("items",menuItems); // perhaps application scope > > return doExecute(mapping, form, request, response); > } > } > > Now execute will be run for ever class that subclasses it, and they > will have to use the doExecute(), method.. For more details check the > xpetstore project out that uses this technique. This approach will > allow you to make use of exception handlers. > > Mark > > > > > On 26 Oct 2004, at 17:14, PC Leung wrote: > > > Hello world, > > > > The following is a fragment of tiles-defs.xml. > > where MyMenuAction actually is UserMenuAction in Tiles. > > > > <definition name="erp.menu.home" path="/layout/menu.jsp" > > controllerClass="com.common.tiles.MyMenuAction" > > > <put name="title" value="Tiles" /> > > <putList name="items" > > > <item value="customize" link="/Welcome.jsp" /> > > ^^^^^^^^^^ ^^^^^^^^^^^^^^^ > > </putList> > > </definition> > > > > Where and how should I put the coding inside MyMenuAction > > so that I can add a number of items which behaves as > > a list of menu item? > > > > Thanks > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]