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]

Reply via email to