new BoardUtils(melati.getRequest().getServletPath(),
new BoardUtils(melati.getZoneURL()+melati.getRequest().getServletPath(),
  protected String doTemplateRequest(                    Melati melati, TemplateContext context)                    throws Exception {    context.put("boardutils",        new BoardUtils(melati.getRequest().getServletPath(),                       melati.getContext().logicalDatabase));    Board board = null;    if (melati.getTable() != null && melati.getObject() != null) {      if (melati.getTable().getName().equals("board"))        board = (Board)melati.getObject();      else if (melati.getTable().getName().equals("subscription"))        board = ((Subscription)melati.getObject()).getBoard();      else if (melati.getTable().getName().equals("message"))        board = ((Message)melati.getObject()).getBoard();    }    context.put("start",      getBoardStart(board, melati.getRequest().getSession(false),                             context.getForm("start")));    if (melati.getTable() == null) {      if (melati.getMethod() != null) {       if (melati.getMethod().equals("Types"))         return typesTemplate(context,melati);       if (melati.getMethod().equals("SearchForBoard"))        return searchForBoardTemplate(context,melati);      }    }    else if (melati.getTable().getName().equals("board") &&                                         melati.getObject() != null) {      if (melati.getMethod().equals("Board"))        return boardTemplate(context,melati);      if (melati.getMethod().equals("Login"))        return loginTemplate(context,melati);      if (melati.getMethod().equals("MessageNew"))        return messageNewTemplate(context,melati,board);      if (melati.getMethod().equals("MessageCreate"))        return messageCreateTemplate(context,melati,board);      if (melati.getMethod().equals("SearchBoard"))        return searchBoardTemplate(context,melati,board);      if (melati.getMethod().equals("Settings"))        return settingsTemplate(context,melati,board);      if (melati.getMethod().equals("SettingsEdit"))        return settingsEditTemplate(context,melati,board);      if (melati.getMethod().equals("SettingsUpdate"))        return settingsUpdateTemplate(context,melati,board);      if (melati.getMethod().equals("Members"))        return membersTemplate(context,melati,board);      if (melati.getMethod().equals("Subscribe"))        return subscribeTemplate(context,melati,board);      if (melati.getMethod().equals("Unsubscribe"))        return unsubscribeTemplate(context,melati,board);      if (melati.getMethod().equals("SubscribeOthers"))        return subscribeOthersTemplate(context,melati,board);      if (melati.getMethod().equals("MembersEdit"))        return membersEditTemplate(context,melati,board);      if (melati.getMethod().equals("PendingMessages"))        return pendingMessagesTemplate(context,melati,board);      if (melati.getMethod().equals("PendingSubscriptions"))        return pendingSubscriptionsTemplate(context,melati,board);      if (melati.getMethod().equals("ApproveMessages"))        return approveMessagesTemplate(context,melati,board);      if (melati.getMethod().equals("DeleteMessages"))        return deleteMessagesTemplate(context,melati,board);      if (melati.getMethod().equals("ApproveSubscriptions"))        return approveSubscriptionsTemplate(context,melati,board);    }    else if (melati.getTable().getName().equals("message") &&                                         melati.getObject() != null) {      if (melati.getMethod().equals("Message"))        return messageTemplate(context,melati,board, true);      if (melati.getMethod().equals("MessageNoThread"))        return messageTemplate(context,melati,board, false);    }    else if (melati.getTable().getName().equals("boardtype") &&                                         melati.getObject() != null) {      if (melati.getMethod().equals("ListBoards"))        return listBoardsTemplate(context,melati);    }    else if (melati.getTable().getName().equals("subscription") &&                                             melati.getObject() != null) {      if (melati.getMethod().equals("SubscriptionEdit"))        return subscriptionEditTemplate(context,melati,board);      if (melati.getMethod().equals("SubscriptionUpdate"))        return subscriptionUpdateTemplate(context,melati,board);    }    throw new InvalidUsageException(this, melati.getContext());  }