cancel
Showing results for 
Search instead for 
Did you mean: 

Creating your own action handler, jsp error

toltech
Champ in-the-making
Champ in-the-making
Hello,
I am trying to create my own action, slowly I am pushing myself through the whole procedure. I have used the MoveActionHandler and also the "move.jsp" and renamed some items into my own names. It now looks all relevant jars, classes, properties etc are being found. However when I run the action I get following message:

javax.faces.FacesException: /jsp/extension/actions/move-replaced.jsp(116,39) No tag "ajaxFolderSelector" defined in tag library imported with prefix "r"
caused by:
org.apache.jasper.JasperException: /jsp/extension/actions/move-replaced.jsp(116,39) No tag "ajaxFolderSelector" defined in tag library imported with prefix "r"

This is exactly the part which takes care of selecting a destination folder and the line in the jsp file is following:

<r:ajaxFolderSelector id="spaceSelector" label="#{msg.select_destination_prompt}"
                                                             value="#{WizardManager.bean.actionProperties.destinationLocation}"
                                                             initialSelection="#{NavigationBean.currentNode.nodeRefAsString}"
                                                             styleClass="selector" />

When I delete this line, no error message, also no folder selector.

strange enough the following file is imported in the jsp page:
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>
and repo.tld contains the ajacFolderSelector

So I am missing some definition or include. I did not change the move.jsp file, except for the title.
Any ideas?

regards,
Robert
6 REPLIES 6

toltech
Champ in-the-making
Champ in-the-making
I figured it out. I messed up my class path so I picked up an old instance of my Handler.
gr.
Robert

dranakan
Champ on-the-rise
Champ on-the-rise
Hello Toltech,

I try to allow to an action to receive a directory (like you). But, when I click on "Set Values and Add", "Click here to select the destination", (there the tree appear) and I click on the green plus icon (plus.gif) I am redirecting to my page jsp (http://10.10.10.56:8080/alfresco/faces/WEB-INF/classes/alfresco/module/syslog/ui/jsp/actions/actionC... and a error message appear).

Do you know what do I check ?

thanks

dranakan
Champ on-the-rise
Champ on-the-rise
I try to allow to an action to receive a directory (like you). But, when I click on "Set Values and Add", "Click here to select the destination", (there the tree appear) and I click on the green plus icon (plus.gif) I am redirecting to my page jsp (http://10.10.10.56:8080/alfresco/faces/ … Custom.jsp and a error message appear).
I give more information on my problem :

Error message after clicking on the green plus icon (plus.gif)
Etat HTTP 404 - 

——————————————————————————–

type Rapport d'�tat

message

description La ressource demand�e () n'est pas disponible.


——————————————————————————–

Apache Tomcat/6.0.18


Jsp page :
<%–
* Copyright (C) 2005-2007 Alfresco Software Limited.

* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.

* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.

* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

* As a special exception to the terms and conditions of version 2.0 of
* the GPL, you may redistribute this Program in connection with Free/Libre
* and Open Source Software ("FLOSS") applications as described in Alfresco's
* FLOSS exception.  You should have recieved a copy of the text describing
* the FLOSS exception, and it is also available here:
* http://www.alfresco.com/legal/licensing"
–%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a"%>
<%@ taglib uri="/WEB-INF/repo.tld" prefix="r"%>

<%@ page buffer="32kb" contentType="text/html;charset=UTF-8"%>
<%@ page isELIgnored="false"%>
<%@ page import="org.alfresco.web.ui.common.PanelGenerator"%>

<r:page titleId="title_action_SplittPDFFromERP">

   <f:view>

      <%– load a bundle of properties with I18N strings –%>
      <f:loadBundle basename="alfresco.messages.webclient" var="msg" />

      <h:form acceptcharset="UTF-8" id="move-action">

         <%– Main outer table –%>
         <table cellspacing="0" cellpadding="2">

            <%– Title bar –%>
            <tr>
               <td colspan="2"><%@ include file="/jsp/parts/titlebar.jsp"%>
               </td>
            </tr>

            <%– Main area –%>
            <tr valign="top">
               <%– Shelf –%>
               <td><%@ include file="/jsp/parts/shelf.jsp"%>
               </td>

               <%– Work Area –%>
               <td width="100%">
               <table cellspacing="0" cellpadding="0" width="100%">
                  <%– Breadcrumb –%>
                  <%@ include file="/jsp/parts/breadcrumb.jsp"%>

                  <%– Status and Actions –%>
                  <tr>
                     <td
                        style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_4.gif)"
                        width="4"></td>
                     <td bgcolor="#dfe6ed"><%– Status and Actions inner contents table –%>
                     <%– Generally this consists of an icon, textual summary and actions for the current object –%>
                     <table cellspacing="4" cellpadding="0" width="100%">
                        <tr>
                           <td width="32"><h:graphicImage id="wizard-logo"
                              url="/images/icons/new_rule_large.gif" /></td>
                           <td>
                           <div class="mainTitle"><h:outputText
                              value="#{WizardManager.title}" /></div>
                           <div class="mainSubText"><h:outputText
                              value="#{WizardManager.description}" /></div>
                           </td>
                        </tr>
                     </table>

                     </td>
                     <td
                        style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_6.gif)"
                        width="4"></td>
                  </tr>

                  <%– separator row with gradient shadow –%>
                  <tr>
                     <td><img
                        src="<%=request.getContextPath()%>/images/parts/statuspanel_7.gif"
                        width="4" height="9"></td>
                     <td
                        style="background-image: url(<%=request.getContextPath()%>/images/parts/statuspanel_8.gif)"></td>
                     <td><img
                        src="<%=request.getContextPath()%>/images/parts/statuspanel_9.gif"
                        width="4" height="9"></td>
                  </tr>

                  <%– Details –%>
                  <tr valign=top>
                     <td
                        style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_4.gif)"
                        width="4"></td>
                     <td>
                     <table cellspacing="0" cellpadding="3" border="0" width="100%">
                        <tr>
                           <td width="100%" valign="top"><a:errors
                              message="#{msg.error_wizard}" styleClass="errorMessage" /> <%
   PanelGenerator.generatePanelStart(out, request
                  .getContextPath(), "white", "white");
%>
                           <table cellpadding="2" cellspacing="2" border="0" width="100%">
                              <tr>
                                 <td colspan="2" class="mainSubTitle"><h:outputText
                                    value="#{msg.set_action_values}" /></td>
                              </tr>
                              <tr>
                                 <td class="paddingRow"></td>
                              </tr>
                              <tr>
                                 <td><h:outputText value="#{msg.destination}" />:</td>
                                 <td width="90%"><r:ajaxFolderSelector id="spaceSelector"
                                    label="#{msg.select_destination_prompt}"
                                    value="#{WizardManager.bean.actionProperties.destinationLocation}"
                                    initialSelection="#{NavigationBean.currentNode.nodeRefAsString}"
                                    styleClass="selector" /></td>
                              </tr>
                              <tr>
                                 <td class="paddingRow"></td>
                              </tr>
                           </table>
                           <%
                              PanelGenerator.generatePanelEnd(out, request
                                             .getContextPath(), "white");
                           %>
                           </td>

                           <td valign="top">
                           <%
                              PanelGenerator.generatePanelStart(out, request
                                             .getContextPath(), "greyround", "#F5F5F5");
                           %>
                           <table cellpadding="1" cellspacing="1" border="0">
                              <tr>
                                 <td align="center"><h:commandButton value="#{msg.ok}"
                                    action="#{WizardManager.bean.addAction}"
                                    styleClass="wizardButton"
                                    disabled="#{WizardManager.bean.actionProperties.destinationLocation == null}" />
                                 </td>
                              </tr>
                              <tr>
                                 <td align="center"><h:commandButton
                                    value="#{msg.cancel_button}"
                                    action="#{WizardManager.bean.cancelAddAction}"
                                    styleClass="wizardButton" /></td>
                              </tr>
                           </table>
                           <%
                              PanelGenerator.generatePanelEnd(out, request
                                             .getContextPath(), "greyround");
                           %>
                           </td>
                        </tr>
                     </table>
                     </td>
                     <td
                        style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_6.gif)"
                        width="4"></td>
                  </tr>

                  <%– separator row with bottom panel graphics –%>
                  <tr>
                     <td><img
                        src="<%=request.getContextPath()%>/images/parts/whitepanel_7.gif"
                        width="4" height="4"></td>
                     <td width="100%" align="center"
                        style="background-image: url(<%=request.getContextPath()%>/images/parts/whitepanel_8.gif)"></td>
                     <td><img
                        src="<%=request.getContextPath()%>/images/parts/whitepanel_9.gif"
                        width="4" height="4"></td>
                  </tr>

               </table>
               </td>
            </tr>
         </table>

      </h:form>

   </f:view>

</r:page>

It doesn't find something but I don't know what…

Someone an idea ?

dranakan
Champ on-the-rise
Champ on-the-rise
I have found the source of my problem…

The JSP need to be in "/jsp/extension/actions/". I have changed this place to have my own struture in my module but the ajax script cannot come back.

This work :
public class MoveReplacedHandler extends BaseActionHandler {
   private static final long serialVersionUID = 1L;
   public final static String CUSTOM_ACTION_JSP = "/jsp/extension/actions/" + MoveReplacedActionExecuter.NAME + ".jsp";


But, can some tell me how can I put it in a module ?

I would like to put my jsp in
>config
   >alfresco
      >module
         >mymodule
            >ui
               >jsp
                  >actions
                     HERE
>source
But the ajax can not come back on the JSP. I have try to put in "/WEB-INF/classes/alfresco/jsp/extension/actions/" but it's doesn't work. The ajax spaceselector just accept the path : "/jsp/extension/actions/" and I can't put files in this place using a module (it access to /WEB-INF/classes/alfresco/).

Can I set the ajax spaceselector to be able to work with jsp in a another place than "/jsp/extension/actions/" ?

Thanks

dranakan
Champ on-the-rise
Champ on-the-rise
I resume my last post…

How can I set the path to a JSP in an actionHandler when the application is in a module (and it's is not possible to put the JSP in /jsp/extension/actions/) ?

(when JSP is in /jsp/extension/actions/ the ajax tool to select works, but when the JSP is in another place, the ajax tool to select redirect to a wrong place after having clicking on add).

Thx

dranakan
Champ on-the-rise
Champ on-the-rise
How can I set the path to a JSP in an actionHandler when the application is in a module (and it's is not possible to put the JSP in /jsp/extension/actions/) ?
Solution here -> http://forums.alfresco.com/en/viewtopic.php?f=10&t=18748&p=61555#p61555