Alright here is all the code. Sorry for too much code, but better too much rather then too little:

//ACTION CLASS

package org.roller.presentation.website.actions;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;
import org.roller.RollerException;
import org.roller.model.DomainManager;
import org.roller.model.RollerFactory;
import org.roller.pojos.DomainData;
import org.roller.pojos.DomainWebsiteData;
import org.roller.pojos.WebsiteData;
import org.roller.presentation.BasePageModel;
import org.roller.presentation.RollerRequest;
import org.roller.presentation.RollerSession;
import org.roller.presentation.forms.DomainWebsiteForm;


/**
* Administer Multiple DomainWebsites
*
* @struts.action name="domainWebsiteForm" path="/admin/domainwebsiteAdmin" scope="request"
*                parameter="method"
*
* @struts.action-forward name="domainwebsiteAdminEdit.page" path=".domainwebsiteAdminEdit"
* @struts.action-forward name="domainAdminEdit" path=".domainAdminEdit"
* @struts.action-forward name="domainwebsiteAdminDeleteOK.page" path=".domainwebsiteAdminDeleteOK"
*
* @author Shervin Asgari
*
*/

public class DomainWebsiteAdminAction extends DispatchAction {
protected static final String DOMAIN_ADMIN_EDIT_PAGE = "domainAdminEdit.page"; protected static final String DOMAINWEBSITE_ADMIN_EDIT_PAGE = "domainwebsiteAdminEdit.page"; protected static final String DOMAINWEBSITE_ADMIN_DELETE_PAGE = "domainwebsiteAdminDeleteOK.page";
   protected static final String ACCESS_DENIED_PAGE = "access-denied";
private static Log mLogger = LogFactory.getFactory().getInstance(
           DomainWebsiteAdminAction.class);

   protected Log getLogger() {
       return mLogger;
   }
public String getDomainWebsiteAdminTitle() {
       return "domainwebsiteAdmin.domainwebsiteAdmin";
   }

   public String getDomainWebsiteAdminEditTitle() {
       return "domainwebsiteAdminEdit.domainwebsiteAdminEdit";
   }
public String getDomainWebsiteAdminDeleteOKTitle() {
       return "domainwebsiteAdminDelete.domainwebsiteAdminDelete";
   }

   public ActionForward unspecified(ActionMapping mapping,
           ActionForm actionForm, HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
       try {
return view(mapping, actionForm, request, response, DOMAIN_ADMIN_EDIT_PAGE);
       } catch (Exception e) {
           mLogger.error("ERROR in action", e);
           throw new ServletException(e);
       }
   }
/**
    * Edit a domainwebsite (load edit view)
    *
    * @param mapping
    * @param form
    * @param req
    * @param res
* @return the edit view with the form populated with the domainwebsiteid specified by the id in the request.
    * @throws Exception
    */
   public ActionForward editSelectedDomainWebsite(ActionMapping mapping,
ActionForm form, HttpServletRequest req, HttpServletResponse res)
           throws Exception {
ActionForward forward = mapping.findForward(DOMAINWEBSITE_ADMIN_EDIT_PAGE);
       RollerRequest rreq = RollerRequest.getRollerRequest(req);
       try {
           DomainWebsiteData domainWebsiteData = selectDomainWebsite(rreq);
((DomainWebsiteForm) form).copyFrom(domainWebsiteData, req.getLocale()); DomainWebsiteAdminEditPageModel editModel = new DomainWebsiteAdminEditPageModel( getDomainWebsiteAdminEditTitle(), req, res, mapping, domainWebsiteData.getDomain()
                   , domainWebsiteData.getWebsite());
           req.setAttribute("domainWebsiteModel", editModel);
           if (!hasRequiredRights(rreq, rreq.getWebsite())) {
               return mapping.findForward(ACCESS_DENIED_PAGE);
           }

           return forward;
       } catch (Exception e) {
getLogger().error("ERROR in editSelectedDomainWebsite" + e.getMessage(), e);
           throw new ServletException(e);
       }
   }

   /**
    * Adding new domains, forwards to the edit page
    *
    * @param mapping
    * @param form
    * @param req
    * @param res
    * @return the edit view
    * @throws Exception
    *
    */
   public ActionForward addNewBlog(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) throws Exception {
       RollerRequest rreq = RollerRequest.getRollerRequest(req);
       DomainData domainData = selectDomain(rreq);
DomainWebsiteAdminEditPageModel pageModel = new DomainWebsiteAdminEditPageModel(getDomainWebsiteAdminEditTitle(),
               req, res, mapping, domainData, new WebsiteData());
       req.setAttribute("domainWebsiteModel", pageModel);
return mapping.findForward(DOMAINWEBSITE_ADMIN_EDIT_PAGE);
   }
/**
    * Use this method to cancel edit, or remove and return to main page.
    *
    * @param mapping
    * @param actionForm
    * @param request
    * @param response
    * @return the main view page
    * @throws Exception
    */
public ActionForward cancel(ActionMapping mapping, ActionForm actionForm,
           HttpServletRequest request, HttpServletResponse response)
           throws Exception {
       return mapping.findForward(DOMAIN_ADMIN_EDIT_PAGE);
   }

   /**
    * Delete a domainwebsite (load delete confirmation view).
    *
    * @param mapping
    * @param form
    * @param req
    * @param res
    * @return the delete confirmation view with the form populated with the
    *         domainwebsite specified by the id in the request.
    * @throws Exception
    */
public ActionForward deleteSelectedDomainWebsite(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception { ActionForward forward = mapping.findForward(DOMAINWEBSITE_ADMIN_DELETE_PAGE);
       RollerRequest rreq = RollerRequest.getRollerRequest(req);
       try {
           BasePageModel pageModel = new BasePageModel(
getDomainWebsiteAdminDeleteOKTitle(), req, res, mapping);
           req.setAttribute("domainWebsiteModel", pageModel);
           if (!hasRequiredRights(rreq, rreq.getWebsite())) {
               return mapping.findForward(ACCESS_DENIED_PAGE);
           }
           DomainWebsiteData domainWebsiteData = selectDomainWebsite(rreq);
((DomainWebsiteForm) form).copyFrom(domainWebsiteData, req.getLocale());

           return forward;
       } catch (Exception e) {
           getLogger().error("ERROR in action", e);
           throw new ServletException(e);
       }
   }

   public ActionForward deleteConfirmedDomainWebsite(ActionMapping mapping,
ActionForm form, HttpServletRequest req, HttpServletResponse res)
           throws Exception {
       RollerRequest rreq = RollerRequest.getRollerRequest(req);
       DomainWebsiteForm domainWebsiteForm = (DomainWebsiteForm) form;
DomainManager domainMgr = RollerFactory.getRoller().getDomainManager();

       try {
           if (!hasRequiredRights(rreq, rreq.getWebsite())) {
               return mapping.findForward(ACCESS_DENIED_PAGE);
           }
           String domainWebsiteId = domainWebsiteForm.getId();
           if (domainWebsiteId == null || domainWebsiteId.length() == 0) {
               throw new RollerException("Missing domainwebsite id.");
           }
domainMgr.removeDomainWebsite(domainMgr.retrieveDomainWebsite(domainWebsiteId));
           RollerFactory.getRoller().commit();
return view(mapping, form, req, res, DOMAIN_ADMIN_EDIT_PAGE);
       } catch (Exception e) {
           getLogger().error("ERROR in action", e);
           throw new ServletException(e);
       }
   }

   /**
    * Save a domain, new or existing (depending on whether the id is
    * non-empty).
    *
    * @param mapping
    * @param form
    * @param req
    * @param res
    * @return the result of <code>view()</code> after the target is saved.
    * @throws Exception
    */
public ActionForward saveDomainWebsite(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception { RollerRequest rreq = RollerRequest.getRollerRequest(req); DomainManager domainMgr = RollerFactory.getRoller().getDomainManager();
       DomainWebsiteForm domainWebsiteForm = (DomainWebsiteForm) form;

       try {
           BasePageModel pageModel = new BasePageModel(
                   getDomainWebsiteAdminEditTitle(), req, res, mapping);
           req.setAttribute("domainWebsiteModel", pageModel);
           if (!hasRequiredRights(rreq, rreq.getWebsite())) {
               return mapping.findForward(ACCESS_DENIED_PAGE);
           }

           DomainWebsiteData domainWebsiteData = null;
           String domainWebsiteId = domainWebsiteForm.getId();
if (domainWebsiteId != null && domainWebsiteId.length() > 0) { domainWebsiteData = domainMgr.retrieveDomainWebsite(domainWebsiteId);

               if (domainWebsiteData == null)
                   throw new RollerException("No such domainwebsite id: "
                           + domainWebsiteForm.getId());
domainWebsiteForm.copyTo(domainWebsiteData, req.getLocale()); domainWebsiteData.setWebsite(selectWebsite(rreq));

           } else {
               //New blog
               DomainData domainData = selectDomain(rreq);
               WebsiteData websiteData = selectWebsite(rreq);
domainWebsiteData = createDomainWebsite(domainWebsiteId,
                       domainData,
                       websiteData,
                       domainWebsiteForm.getHandle());
           }
           // Save it, commit and return refreshed view of target list.
           domainWebsiteData.save();
           RollerFactory.getRoller().commit();

           ActionMessages msgs = new ActionMessages();
           msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
                   "domainWebsiteAdminEdit.saved"));
           saveMessages(req, msgs);

return view(mapping, form, req, res, DOMAINWEBSITE_ADMIN_EDIT_PAGE);
       } catch (Exception e) {
           getLogger().error("ERROR in action " + e.getMessage(), e);
           throw new ServletException(e);
       }
   }

   public ActionForward view(ActionMapping mapping, ActionForm actionForm,
HttpServletRequest request, HttpServletResponse response, String forwardTo)
           throws Exception {
       ActionForward forward = mapping.findForward(forwardTo);

       try {
RollerSession rollerSession = RollerSession.getRollerSession(request);

request.setAttribute("domainWebsiteModel", new DomainWebsiteAdminEditPageModel( "domainWebsiteAdminEdit.title", request, response, mapping, null, null));
           if (request.getAttribute("domainWebsiteModel") == null) {
               request.setAttribute("domainWebsiteModel", actionForm);
           }

           // Ensure user is authorized
           if (rollerSession.isGlobalAdminUser()) {
               return forward;
           } else {
               return mapping.findForward("access-denied");
           }

       } catch (Exception e) {
mLogger.error("Error in DomainWebsiteAdminAction.view()"+ e + "\n" + e.getMessage());
           throw new ServletException(e);
       }
   }
/*
    * Check if request carries admin rights.
    */
protected boolean hasRequiredRights(RollerRequest rreq, WebsiteData website)
           throws RollerException {
       RollerSession rollerSession = RollerSession.getRollerSession(rreq
               .getRequest());
       return rollerSession.isGlobalAdminUser();
   }

   /**
* Helper to select the domainwebsite specified by the id in the request.
    *
    * @param rreq
    * @param form
* @return the domainwebsitedata specified by the id in the request and the handle
    * @throws RollerException
    */
private DomainWebsiteData selectDomainWebsite(RollerRequest rreq) throws RollerException
       {
String domainwebsiteId = rreq.getRequest().getParameter(RollerRequest.DOMAINWEBSITEID_KEY); DomainManager domainMgr = RollerFactory.getRoller().getDomainManager(); if (domainwebsiteId == null || domainwebsiteId.length() == 0) { throw new RollerException("Missing domainwebsite id: " + domainwebsiteId);
           }
DomainWebsiteData domainWebsiteData = domainMgr.retrieveDomainWebsite(domainwebsiteId); if (domainWebsiteData == null) {
               throw new RollerException("No such domainWebsite id: "
                       + domainWebsiteData);
           }
return domainWebsiteData;

       }
private DomainData selectDomain(RollerRequest rreq) throws RollerException { String domainId = rreq.getRequest().getParameter(RollerRequest.DOMAINID_KEY); DomainManager domainMgr = RollerFactory.getRoller().getDomainManager(); if (domainId == null || domainId.length() == 0) {
           throw new RollerException("Missing domain id: " + domainId);
       }
DomainData domainData = domainMgr.retrieveDomain(domainId); if (domainData == null) {
           throw new RollerException("No such domainData id: "
                   + domainData);
       }
return domainData;
   }
private WebsiteData selectWebsite(RollerRequest rreq) throws RollerException { String websiteId = rreq.getRequest().getParameter(RollerRequest.WEBSITEID_KEY); DomainManager domainMgr = RollerFactory.getRoller().getDomainManager(); if (websiteId == null || websiteId.length() == 0) {
           throw new RollerException("Missing website id: " + websiteId);
       }
WebsiteData websiteData = domainMgr.retrieveWebsite(websiteId); if (websiteData == null) {
           throw new RollerException("No such websiteData id: "
                   + websiteData);
       }
return websiteData;
   }
public DomainWebsiteData createDomainWebsite(String id, DomainData domainId,
           WebsiteData websiteId, String handle) {
       return new DomainWebsiteData(id,domainId,websiteId, handle);
   }
public class DomainWebsiteAdminEditPageModel extends BasePageModel {
       private List websiteList = null;
       private DomainData domainData = null;
       private WebsiteData websiteData = null;

       public DomainWebsiteAdminEditPageModel(String titleKey,
               HttpServletRequest request, HttpServletResponse response,
ActionMapping mapping, DomainData domainData, WebsiteData websiteData) throws RollerException {

           super(titleKey, request, response, mapping);
           this.domainData = domainData;
           this.websiteData = websiteData;
try { DomainManager dm = RollerFactory.getRoller().getDomainManager();
               websiteList = dm.getWebsites();
           } catch (RollerException re) {
               mLogger.error("Couldn't return list of DomainWebsites\n"
                       + re.getMessage(), re);
           }
       }

       public List getWebsiteList() {
           return websiteList;
       }
public DomainData getDomainData() {
           return domainData;
       }
public WebsiteData getWebsite() {
           return websiteData;
       }
   }
}




//THIS IS A SAMPLE OF MY TILES-DEFS.XML

<!-- global admin pages (and associates) -->

<definition name=".rollerProperties" extends=".tiles-adminpage" >
   <put name="content" value="/website/rollerProperties.jsp" />
</definition>
<definition name=".UserAdmin" extends=".tiles-adminpage" >
   <put name="content" value="/website/UserAdmin.jsp" />
</definition>
<definition name=".CommonPingTargets" extends=".tiles-adminpage" >
   <put name="content" value="/website/CommonPingTargets.jsp" />
</definition>
<definition name=".cacheInfo" extends=".tiles-adminpage" >
   <put name="content" value="/website/cacheInfo.jsp" />
</definition>

<definition name=".domainAdmin" extends=".tiles-adminpage" >
   <put name="content" value="/website/domainAdmin.jsp" />
</definition>

<definition name=".domainAdminDeleteOK" extends=".tiles-adminpage" >
   <put name="content" value="/website/domainAdminDeleteOK.jsp" />
</definition>

<definition name=".domainAdminEdit" extends=".tiles-adminpage" >
   <put name="content" value="/website/domainAdminEdit.jsp" />
</definition>

<definition name=".domainwebsiteAdminEdit" extends=".tiles-adminpage" >
   <put name="content" value="/website/domainwebsiteAdminEdit.jsp" />
</definition>

<definition name=".domainwebsiteAdminDeleteOK" extends=".tiles-adminpage" >
   <put name="content" value="/website/domainwebsiteAdminDeleteOK.jsp" />
</definition>

<definition name=".CommonPingTargetDeleteOK" extends=".tiles-simplepage" >
   <put name="content" value="/website/CommonPingTargetDeleteOK.jsp" />
</definition>
<definition name=".CommonPingTargetEdit" extends=".tiles-simplepage" >
   <put name="content" value="/website/CommonPingTargetEdit.jsp" />
</definition>

<definition name=".UserNew" extends=".tiles-simplepage" >
   <put name="content" value="/website/UserNew.jsp" />
</definition>

<definition name=".PlanetSubscriptions" extends=".tiles-adminpage" >
   <put name="content" value="/planet/PlanetSubscriptions.jsp" />
</definition>
<definition name=".PlanetConfig" extends=".tiles-adminpage" >
   <put name="content" value="/planet/PlanetConfig.jsp" />
</definition>
<definition name=".PlanetGroups" extends=".tiles-adminpage" >
   <put name="content" value="/planet/PlanetGroups.jsp" />
</definition>



//AND FINALLY MY JSP FILE WHICH I WANT TO RETURN TOO

<%@ include file="/taglibs.jsp" %>
<%@ page import="org.roller.presentation.website.actions.DomainAdminAction" %>

<% DomainAdminAction.DomainAdminEditPageModel websiteModel =
(DomainAdminAction.DomainAdminEditPageModel)request.getAttribute("websiteModel");
%>
<p class="subtitle"><fmt:message key="domainAdmin.subtitle"/></p>

<html:form action="/admin/domainAdmin" method="post" focus="name">
   <html:hidden property="method" value="save" />
   <html:hidden property="id" />

   <div class="formrow">
<label for="domainName" class="formrow"><fmt:message key="domainAdmin.name" /></label>
      <html:text property="domainName" size="30" maxlength="30" />
   </div>

   <div class="formrow">
<label for="description" class="formrow"><fmt:message key="domainAdmin.desc" /></label>
      <html:text property="description" size="100" maxlength="255" />
   </div>

   <p/>
   <div class="formrow">
      <label for="" class="formrow">&nbsp;</label>
<input type="submit" value='<fmt:message key="domainAdmin.save" />' />
   </div>

</html:form>

<%-- DOMAINWEBSITE STUFF --%>
<p><h3 style="clear: both;">The following blogs are in this domain:</h3></p>

<table class="rollertable" style="clear: both;" >

   <%-- Headings --%>
   <tr class="rollertable">
<th class="rollertable" width="20%%"><fmt:message key="domainAdmin.handle" /></th> <th class="rollertable" width="20%%"><fmt:message key="domainAdmin.domainDesc" /></th> <th class="rollertable" width="20%%"><fmt:message key="domainAdmin.websiteDesc" /></th> <th class="rollertable" width="5%%"><fmt:message key="domainAdmin.edit" /></th> <th class="rollertable" width="5%%"><fmt:message key="domainAdmin.remove" /></th>
   </tr>
   <c:forEach var="domainwebsite" items="${websiteModel.domain.websites}">
<roller:row oddStyleClass="rollertable_odd" evenStyleClass="rollertable_even">
           <td class="rollertable">
               <str:truncateNicely lower="70" upper="75" >
                   <c:out value="${domainwebsite.handle}" />
               </str:truncateNicely>
           </td>
           <td class="rollertable">
               <str:truncateNicely lower="70" upper="75" >
                   <c:out value="${domainwebsite.domain.description}" />
               </str:truncateNicely>
           </td>
           <td class="rollertable">
               <str:truncateNicely lower="70" upper="75" >
                   <c:out value="${domainwebsite.website.description}" />
               </str:truncateNicely>
           </td>
<td class="rollertable" align="center">
               <roller:link page="/admin/domainwebsiteAdmin.do">
                   <roller:linkparam
                      id="<%= RollerRequest.DOMAINWEBSITEID_KEY %>"
                      name="domainwebsite" property="id" />
                  <roller:linkparam
                      id="method" value="editSelectedDomainWebsite" />
<img src='<c:url value="/images/page_white_edit.png"/>' border="0"
                       alt="<fmt:message key="domainAdmin.edit" />" />
                  </roller:link>
           </td>
<td class="rollertable" align="center">
              <roller:link page="/admin/domainwebsiteAdmin.do">
                  <roller:linkparam
                          id="<%= RollerRequest.DOMAINWEBSITEID_KEY %>"
                          name="domainwebsite" property="id" />
                  <roller:linkparam
                      id="method" value="deleteSelectedDomainWebsite" />
                  <img src='<c:url value="/images/delete.png"/>' border="0"
                       alt="<fmt:message key="domainAdmin.remove" />" />
                  </roller:link>
           </td>

       </roller:row>
   </c:forEach>
</table>

<p/>
 <c:if test="${!empty websiteModel.domain.id}" >

   <html:form action="/admin/domainwebsiteAdmin" method="post">
       <div class="control">
          <html:hidden property="method" value="addNewBlog" />
<input type="hidden" name="domainId" value="<c:out value='${websiteModel.domain.id}' />" /> <input type="submit" value='<fmt:message key="domainWebsiteAdminEdit.addNew"/>' />
       </div>
   </html:form>
</c:if> <p/>




Shervin Asgari - System Consultant
M: +47 918 64 148, @: [EMAIL PROTECTED]
Linpro AS - Leading on Linux    Tel: +47 21 54 41 00/02
Vitaminveien 1A        Fax: +47 21 54 41 01
PB 4 Grefsen, 0409 Oslo    WWW: http://www.linpro.no/



Dave Newton wrote:
Shervin Asgari wrote:
* @struts.action-forward name="domainwebsiteAdminEdit.page"
path=".domainwebsiteAdminEdit"
* @struts.action-forward name="domainAdminEdit" path=".domainAdminEdit"

return viewDomainWebsiteEdit(mapping, form, req, res,
DOMAINWEBSITE_ADMIN_EDIT_PAGE);

public ActionForward viewDomainWebsiteEdit(ActionMapping mapping,
ActionForm actionForm,
           HttpServletRequest request, HttpServletResponse response)
           throws Exception {
       ActionForward forward =
mapping.findForward("domainAdminEdit.page");

       try {
           RollerSession rollerSession =
RollerSession.getRollerSession(request);

           request.setAttribute("domainWebsiteModel", new
DomainWebsiteAdminEditPageModel(
                   "domainWebsiteAdminEdit.title", request, response,
mapping, null, null));
           if (request.getAttribute("domainWebsiteModel") == null) {
               request.setAttribute("domainWebsiteModel", actionForm);
           }

       } catch (Exception e) {
           mLogger.error("Error in DomainWebsiteAdminAction.view()"+ e
+ "\n" + e.getMessage());
           throw new ServletException(e);
       }
   }

Still not working, eh?

I don't actually see you returning a forward here.

Repost the actual code and configuration files.

Dave



---------------------------------------------------------------------
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