struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pablo Vázquez Blázquez <pvazq...@denodo.com>
Subject Re: File Upload
Date Mon, 21 Jan 2008 08:33:16 GMT
Thanks for your reply.

I have looked the links below and I tried what it says:

The form:

<form id="myform" action="nodecorate/myaction.action"
enctype="multipart/form-data" method="post">
      <s:file name="myfile"></s:file>
      <input type="button" onclick="sendIt(); return false;">
</form>

The javascript:

function sendIt(){
   var bindArgs = {
       transport: "IframeTransport",
       formNode: document.getElementById("myform"),
       mimetype: "text/html",
       load: function(type, data, evt){
           document.getElementById("mydiv").innerHTML =
data.firstChild.innerHTML;
       }
   };
   var request = dojo.io.bind(bindArgs);
}

The div with id 'mydiv' will then get updated with the response from the
action.



Well, my form looks like this:

    <s:form id="addPluginForm" name="addPluginForm" theme="simple" 
            action="AddPlugin" enctype="multipart/form-data" method="post">
        
        <div class="field">
            <span class="label">
                <fmt:message key="PluginsTable.File"/>*:
            </span>
            <span class="entry">
                <s:file name="upload" size="40"
                    accept="application/java-archive"/>
                <span id="errorId" class="errorMessage">
                    <s:property value="fieldErrors['upload'][0]" />
                </span>
                <span id="errorId" class="errorMessage">
                    <s:property value="fieldErrors['uploadContentType'][0]" />
                </span>
            </span>
        </div>
        
        <!-- BOTONES -->
        <div class="button">
            <span class="buttonLeft">
                <s:submit type="button"  
                        onclick="sendMultiPartForm('addPluginForm', 'configAjaxContent');
return false;"
                        cssClass="submit">
                    <s:param name="value">
                        <fmt:message key="Buttons.accept"/>
                    </s:param>
                </s:submit>
            </span>
            <span class="buttonRight">
                <!-- cancelar -->
                <s:url id="CancelUrl" action="CancelConfiguration"/>
                <s:submit type="button" theme="ajax" targets="configAjaxContent" 
                        showLoadingText="false" cssClass="reset" href="${CancelUrl}">
                    <s:param name="value">
                        <fmt:message key="Buttons.cancel"/>
                    </s:param>
                </s:submit>
            </span>
        </div>
        
    </s:form>

and my Javascript:

function sendMultiPartForm(formId, targetId) {
    
    dojo.require("dojo.io.IframeIO");
    var bindArgs = {
       transport: "IframeTransport",
       formNode: document.getElementById(formId),
       mimetype: "text/html",
       load: function(type, data, evt) {
           document.getElementById(targetId).innerHTML =
                data.firstChild.innerHTML;
       }
    };
   
    var request = dojo.io.bind(bindArgs);
}

Unfortunately, it is happening the same than before: the file is uploaded but my target div
is not being updated with the action's response content. 
And, as before, if I want to upload another file, I must go first to another action and then,
return to this one; if not, it doesn't work...


Am I missing sth? Doing sth wrong?






Jeromy Evans escribió:
> hmm...that's interesting.
>
> My approach would be to create a new blank struts application that 
> just contains a file upload action. Get it to work without ajax as 
> there still seems to be a configuration problem.
>
> Then, when you're satisfied the configuration is correct... 
> unfortunately you can't use s:form theme=ajax to perform a multi-part 
> upload in Struts2.0.  To perform an asynchronous upload, you'll have 
> to use Dojo's IFrameIO feature directly.  I haven't used it myself, 
> but it's described in the following two posts:
>
> http://www.mail-archive.com/user@struts.apache.org/msg60245.html
> http://www.nabble.com/Image-Upload-and-Dojo-td14350527.html
>
> I hope that helps!
>
> Pablo Vázquez Blázquez wrote:
>> Error de lectura XML: contenido incorrecto tras un elemento XML del 
>> documento
>> Ubicación: http://localhost:8080/scheduler-admintool-1.0/AddPlugin.do
>> Número de línea 8, columna 1:<form id="addPluginForm" 
>> name="addPluginForm" onsubmit="return true;" 
>> action="/scheduler-admintool-1.0/AddPlugin.do" method="post" 
>> enctype="multipart/form-data">
>> ^
>>
>> That´s the result if I try without the ajax theme on the form.
>>
>> Yes, I would like to use the ajax theme.
>>
>> Thanks.
>>
>> Jeromy Evans escribió:
>>> Are you deliberately trying to do an XHR file upload? Have you tried 
>>> it without the ajax theme on the form?
>>>
>>> Pablo Vázquez Blázquez wrote:
>>>> Yes yes, that debugging statement is executed. That´s why I know my 
>>>> plugin is created.
>>>>
>>>> "Anadido plugin " + uploadFileName means "Added plugin " + 
>>>> uploadFileName.
>>>>
>>>> And then, it goes to ShowPlugins and the debugging statement
>>>> log.debug("Obtenidos plugins"); (Getted all plugins) is also executed.
>>>>
>>>>
>>>>
>>>> Cheng Wei Lee escribió:
>>>>> Was this debugging statement executed?
>>>>>
>>>>>            log.debug("Anadido plugin " + uploadFileName);
>>>>>
>>>>>
>>>>> On Jan 18, 2008 12:13 AM, Pablo Vázquez Blázquez 
>>>>> <pvazquez@denodo.com>
>>>>> wrote:
>>>>>
>>>>>  
>>>>>> Here I send you my JSP and Action code.
>>>>>>
>>>>>> Yes, when I submit, the new plugin is added (I know it because of
my
>>>>>> logs), but I don´t know why I don´t get the result page.
>>>>>>
>>>>>> Thank you.
>>>>>>
>>>>>> PD: I have now tried without struts.multipart.parser, but it 
>>>>>> doesn´t work.
>>>>>>
>>>>>> ****** JSP ******
>>>>>>
>>>>>> <jsp:root xmlns="http://www.w3.org/1999/xhtml"
>>>>>>    xmlns:jsp="http://java.sun.com/JSP/Page"
>>>>>>    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
>>>>>>    xmlns:c="http://java.sun.com/jsp/jstl/core"
>>>>>>    xmlns:s="/struts-tags"
>>>>>>    version="2.0">
>>>>>>
>>>>>>    <!-- Tabla con los plugins. Si no hay ninguno, se muestra un

>>>>>> mensaje
>>>>>> -->
>>>>>>    <table class="pluginsTable" cellspacing="0px" cellpadding="3px"
>>>>>> border="1px">
>>>>>>        <tbody>
>>>>>>            <tr>
>>>>>>                <td class="tableTitle" colspan="5">
>>>>>>                    <fmt:message key="PluginsTable.Title"/>
>>>>>>                </td>
>>>>>>            </tr>
>>>>>>            <tr>
>>>>>>                <td class="tableHeader">
>>>>>>                    <fmt:message key="PluginsTable.Name"/>
>>>>>>                </td>
>>>>>>                <td class="tableHeader">
>>>>>>                    <fmt:message key="PluginsTable.JarFile"/>
>>>>>>                </td>
>>>>>>                <td class="tableHeader">
>>>>>>                    <fmt:message key="PluginsTable.PluginClass"/>
>>>>>>                </td>
>>>>>>                <td class="tableHeader">
>>>>>>                    <fmt:message key="PluginsTable.Type"/>
>>>>>>                </td>
>>>>>>                <td class="tableHeader">
>>>>>>                    <fmt:message key="PluginsTable.Actions"/>
>>>>>>                </td>
>>>>>>            </tr>
>>>>>>            <c:if test="${empty plugins}">
>>>>>>                <tr>
>>>>>>                    <td class="tableMessage" colspan="5">
>>>>>>                        <fmt:message key="PluginsTable.NoPlugins"/>
>>>>>>                    </td>
>>>>>>                </tr>
>>>>>>            </c:if>
>>>>>>            <c:forEach items="${plugins}" var="plugin" 
>>>>>> varStatus="status">
>>>>>>                <!-- stuff -->
>>>>>>            </c:forEach>
>>>>>>        </tbody>
>>>>>>    </table>
>>>>>>
>>>>>>
>>>>>>    <!-- Form to add plugin -->
>>>>>>    <s:form id="addPluginForm" name="addPluginForm" theme="ajax"
>>>>>>            action="AddPlugin" enctype="multipart/form-data" 
>>>>>> method="post">
>>>>>>
>>>>>>        <div class="field">
>>>>>>            <span class="label">
>>>>>>                <fmt:message key="PluginsTable.File"/>*:
>>>>>>            </span>
>>>>>>            <span class="entry">
>>>>>>                <s:file name="upload" size="40"
>>>>>>                    accept="application/java-archive"/>
>>>>>>                <span id="errorId" class="errorMessage">
>>>>>>                    <s:property value="fieldErrors['upload'][0]"
/>
>>>>>>                </span>
>>>>>>                <span id="errorId" class="errorMessage">
>>>>>>                    <s:property 
>>>>>> value="fieldErrors['uploadContentType'][0]"
>>>>>> />
>>>>>>                </span>
>>>>>>            </span>
>>>>>>        </div>
>>>>>>
>>>>>>        <!-- BOTONES -->
>>>>>>        <jsp:directive.include file="FormButtons.jspf"/>
>>>>>>
>>>>>>    </s:form>
>>>>>>
>>>>>> </jsp:root>
>>>>>>
>>>>>>
>>>>>> ****** FORMBUTTONS.JSPF****
>>>>>>
>>>>>> <!-- BUTTONS-->
>>>>>> <div class="button">
>>>>>>    <span class="buttonLeft">
>>>>>>        <s:submit type="button"
>>>>>>                targets="configAjaxContent" executeScripts="true"
>>>>>>                showLoadingText="false" indicator="indicator"
>>>>>> cssClass="submit">
>>>>>>            <s:param name="value">
>>>>>>                <fmt:message key="Buttons.accept"/>
>>>>>>            </s:param>
>>>>>>        </s:submit>
>>>>>>    </span>
>>>>>>    <span class="buttonRight">
>>>>>>        <!-- cancelar -->
>>>>>>        <s:url id="CancelUrl" action="CancelConfiguration"/>
>>>>>>        <s:submit type="button" targets="configAjaxContent"
>>>>>>                showLoadingText="false" cssClass="reset"
>>>>>> href="${CancelUrl}">
>>>>>>            <s:param name="value">
>>>>>>                <fmt:message key="Buttons.cancel"/>
>>>>>>            </s:param>
>>>>>>        </s:submit>
>>>>>>    </span>
>>>>>> </div>
>>>>>>
>>>>>>
>>>>>>
>>>>>> *****ACTION *****
>>>>>> public class AddPluginAction extends DefaultRequestResponseAction
{
>>>>>>
>>>>>>    private static final long serialVersionUID = 
>>>>>> 1516786859681901796L;
>>>>>>
>>>>>>    /**
>>>>>>     * Logger for this class
>>>>>>     */
>>>>>>    private static final Log log = 
>>>>>> LogFactory.getLog(AddPluginAction.class
>>>>>> );
>>>>>>
>>>>>>    private File upload;
>>>>>>    private String uploadContentType;
>>>>>>    private String uploadFileName;
>>>>>>
>>>>>>    @Override
>>>>>>    protected String doExecute() throws Exception {
>>>>>>
>>>>>>        clearErrorsAndMessages();
>>>>>>
>>>>>>        Context context =
>>>>>>            SessionManager.getRemoteServerContext(getRequest());
>>>>>>
>>>>>>        SchedulerManager facade =
>>>>>>            SessionManager.getUserFacadeDelegate(getRequest(), 
>>>>>> context);
>>>>>>
>>>>>>        try {
>>>>>>
>>>>>>            byte[] filedata = readInputStream(new 
>>>>>> FileInputStream(upload));
>>>>>>
>>>>>>            facade.addPlugin(uploadFileName, filedata);
>>>>>>
>>>>>>            log.debug("Anadido plugin " + uploadFileName);
>>>>>>
>>>>>>        } catch (ConnectException e) {
>>>>>>            log.error(e);
>>>>>>            throw new InternalErrorException(e);
>>>>>>
>>>>>>        } catch (DuplicateInstanceException e) {
>>>>>>            log.error(e);
>>>>>>            addFieldError("upload",
>>>>>>                    getText("PluginsTable.File.Duplicate"));
>>>>>>
>>>>>>        } catch (FileNotFoundException e) {
>>>>>>            log.error(e);
>>>>>>            addFieldError("upload",
>>>>>>                    getText("PluginsTable.File.NotFound"));
>>>>>>
>>>>>>        } catch (Exception e) {
>>>>>>            log.error(e);
>>>>>>            addFieldError("uploadContentType",
>>>>>>                    
>>>>>> getText("ErrorMessages.file.incorrectExtension"));
>>>>>>        }
>>>>>>
>>>>>>        if (hasErrors()) {
>>>>>>            return Action.INPUT;
>>>>>>        }
>>>>>>
>>>>>>        return Action.SUCCESS;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /*
>>>>>>     * Read an input stream in its entirety into a byte array
>>>>>>     */
>>>>>>    private static byte[] readInputStream(InputStream inputStream)
>>>>>>        throws IOException {
>>>>>>
>>>>>>        ....
>>>>>>
>>>>>>        return content;
>>>>>>    }
>>>>>>
>>>>>>    /**
>>>>>>     * Getters/Setters
>>>>>>     * @return
>>>>>>     */
>>>>>>
>>>>>>    public File getUpload() {
>>>>>>        return upload;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    public void setUpload(File upload) {
>>>>>>        this.upload = upload;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    public String getUploadContentType() {
>>>>>>        return uploadContentType;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    public void setUploadContentType(String uploadContentType) {
>>>>>>        this.uploadContentType = uploadContentType;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    public String getUploadFileName() {
>>>>>>        return uploadFileName;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    public void setUploadFileName(String uploadFileName) {
>>>>>>        this.uploadFileName = uploadFileName;
>>>>>>    }
>>>>>>
>>>>>> }
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Dave Newton escribió:
>>>>>>
>>>>>>  
>>>>>>> --- Pablo Vázquez Blázquez <pvazquez@denodo.com> wrote:
>>>>>>>
>>>>>>>   
>>>>>>>> I send you my struts-config.xml file, but it works ok. If
I 
>>>>>>>> delete my
>>>>>>>> "s:file" from my form, everything works fine.
>>>>>>>>
>>>>>>>>         
>>>>>>> The error happens after you submit, correct?
>>>>>>>
>>>>>>> I guess I'd want to see the JSP and the action code, then; the
>>>>>>>       
>>>>>> configuration
>>>>>>  
>>>>>>> seems okay.
>>>>>>>
>>>>>>> Have you tried it without setting the "struts.multipart.parser"
>>>>>>>       
>>>>>> constant? The
>>>>>>  
>>>>>>> default value of that is "jakarta", not a classname; it's worth

>>>>>>> a shot,
>>>>>>> anyway.
>>>>>>>
>>>>>>> d.
>>>>>>>
>>>>>>>
>>>>>>>   
>>>>>>>> To see the action involved search:  <!-- HERE IS THE PROBLEM
-->
>>>>>>>>
>>>>>>>>
>>>>>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>>>>>> <!DOCTYPE struts PUBLIC
>>>>>>>>     "-//Apache Software Foundation//DTD Struts Configuration

>>>>>>>> 2.0//EN"
>>>>>>>>     "http://struts.apache.org/dtds/struts-2.0.dtd">
>>>>>>>>
>>>>>>>> <struts>
>>>>>>>>
>>>>>>>>     <constant name="struts.enable.DynamicMethodInvocation"
>>>>>>>>         
>>>>>> value="false" />
>>>>>>  
>>>>>>>>     <constant name="struts.devMode" value="true" />
<!-- TODO: 
>>>>>>>> cambiar
>>>>>>>>         
>>>>>> a
>>>>>>  
>>>>>>>> false en produccion -->
>>>>>>>>     <constant name="struts.action.extension" value="do"/>
>>>>>>>>     <constant name="struts.ui.theme" value="simple"/>
>>>>>>>>     <constant name="struts.multipart.parser"
>>>>>>>>
>>>>>>>> value="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest

>>>>>>>>
>>>>>>>>         
>>>>>> "/>
>>>>>>  
>>>>>>>>     <!-- Internacionalizacion para los tags de struts
2 -->
>>>>>>>>     <constant name="struts.custom.i18n.resources"
>>>>>>>>         value="admintool.http.view.messages.Messages"/>
>>>>>>>>
>>>>>>>>     <include file="struts-default.xml"/>
>>>>>>>>
>>>>>>>>     <!-- ===== Paquetes ===== -->
>>>>>>>>     <package name="scheduler" extends="struts-default">
>>>>>>>>
>>>>>>>>         <!-- ===== Resultados globales ===== -->
>>>>>>>>         <result-types>
>>>>>>>>             <result-type name="tiles"
>>>>>>>>                 
>>>>>>>> class="org.apache.struts2.views.tiles.TilesResult"/>
>>>>>>>>         </result-types>
>>>>>>>>
>>>>>>>>         <!-- ===== Interceptors ===== -->
>>>>>>>>         <interceptors>
>>>>>>>>
>>>>>>>>             <interceptor name="session"
>>>>>>>>
>>>>>>>> class="admintool.http.controller.interceptors.SessionInterceptor"

>>>>>>>> />
>>>>>>>>
>>>>>>>>             <interceptor name="login"
>>>>>>>>
>>>>>>>> class="admintool.http.controller.interceptors.AuthenticationInterceptor"

>>>>>>>>
>>>>>>>>         
>>>>>> />
>>>>>>  
>>>>>>>>             <interceptor-stack name="defaultLoginStack">
>>>>>>>>                 <interceptor-ref name="exception" />
>>>>>>>>                 <interceptor-ref name="alias" />
>>>>>>>>                 <interceptor-ref name="servlet-config"
/>
>>>>>>>>                 <interceptor-ref name="session" />
>>>>>>>>                 <interceptor-ref name="login" />
>>>>>>>>                 <interceptor-ref name="prepare" />
>>>>>>>>                 <interceptor-ref name="i18n"/>
>>>>>>>>                 <interceptor-ref name="chain" />
>>>>>>>>                 <interceptor-ref name="model-driven" />
>>>>>>>>                 <interceptor-ref name="fileUpload" />
>>>>>>>>                 <interceptor-ref name="static-params"
/>
>>>>>>>>                 <interceptor-ref name="params" />
>>>>>>>>                 <interceptor-ref name="conversionError"
/>
>>>>>>>>                 <interceptor-ref name="validation" />
>>>>>>>>                 <interceptor-ref name="workflow" />
>>>>>>>>             </interceptor-stack>
>>>>>>>>
>>>>>>>>             <interceptor-stack name="defaultInsecureStack">
>>>>>>>>                 <interceptor-ref name="exception" />
>>>>>>>>                 <interceptor-ref name="alias" />
>>>>>>>>                 <interceptor-ref name="servlet-config"
/>
>>>>>>>>                 <interceptor-ref name="session" />
>>>>>>>>                 <interceptor-ref name="prepare" />
>>>>>>>>                 <interceptor-ref name="i18n"/>
>>>>>>>>                 <interceptor-ref name="chain" />
>>>>>>>>                 <interceptor-ref name="model-driven" />
>>>>>>>>                 <interceptor-ref name="fileUpload" />
>>>>>>>>                 <interceptor-ref name="static-params"
/>
>>>>>>>>                 <interceptor-ref name="params" />
>>>>>>>>                 <interceptor-ref name="conversionError"
/>
>>>>>>>>                 <interceptor-ref name="validation" />
>>>>>>>>                 <interceptor-ref name="workflow" />
>>>>>>>>             </interceptor-stack>
>>>>>>>>
>>>>>>>>             <!-- Sample file upload stack -->
>>>>>>>>             <interceptor-stack name="fileUploadStack">
>>>>>>>>                 <interceptor-ref name="fileUpload"/>
>>>>>>>>                 <interceptor-ref name="basicStack"/>
>>>>>>>>             </interceptor-stack>
>>>>>>>>
>>>>>>>>         </interceptors>
>>>>>>>>
>>>>>>>>         <!--
>>>>>>>>             Make the defaultLoginStack the default one used
>>>>>>>>             for all actions unless otherwise configured.
>>>>>>>>         -->
>>>>>>>>         <default-interceptor-ref name="defaultLoginStack"
/>
>>>>>>>>
>>>>>>>>         <!-- ===== Resultados globales ===== -->
>>>>>>>>         <!-- se corresponden con los valores por defecto

>>>>>>>> devueltos por
>>>>>>>> Action (ej: error, login) -->
>>>>>>>>         <global-results>
>>>>>>>>             <result name="login"
>>>>>>>> type="redirect-action">ShowAuthentication</result>
>>>>>>>>             <result name="MainPage"
>>>>>>>> type="redirect-action">Workspace</result>
>>>>>>>>             <result
>>>>>>>> name="error">/HTML/tiles/base/InternalError.jspx</result>
>>>>>>>>             <result
>>>>>>>>         
>>>>>> name="exito">/HTML/tiles/base/SuccessPage.jspx</result>
>>>>>>  
>>>>>>>>         </global-results>
>>>>>>>>
>>>>>>>>         <!-- ===== Secciones principales ===== -->
>>>>>>>>         <action name="Workspace">
>>>>>>>>             <result type="tiles">.Workspace</result>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="Scheduler">
>>>>>>>>             <result type="tiles">.Scheduler</result>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="Configuration">
>>>>>>>>             <result type="tiles">.Configuration</result>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <!-- ===== Autenticacion ===== -->
>>>>>>>>         <!-- Accion que muestra el formulario de autenticacion
-->
>>>>>>>>         <action name="ShowAuthentication"
>>>>>>>>
>>>>>>>> class="admintool.http.controller.actions.users.ShowAuthenticationAction

>>>>>>>>
>>>>>>>>         
>>>>>> ">
>>>>>>  
>>>>>>>>             <interceptor-ref name="defaultInsecureStack"/>
>>>>>>>>             <result type="tiles">.Login</result>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <!-- Ejecuta la accion de login. Si hay fallos,
vuelve 
>>>>>>>> a la
>>>>>>>> misma pagina -->
>>>>>>>>         <action name="Login"
>>>>>>>>
>>>>>>>> class="admintool.http.controller.actions.users.LoginAction">
>>>>>>>>             <interceptor-ref name="defaultInsecureStack"/>
>>>>>>>>             <result name="input" type="tiles">.Login</result>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <!-- Cierra la sesion y vuelve a la pagina de
login  -->
>>>>>>>>         <action name="Logout"
>>>>>>>>
>>>>>>>> class="admintool.http.controller.actions.users.LogoutAction">
>>>>>>>>             <interceptor-ref name="defaultInsecureStack"/>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <!-- ===== Configuration ===== -->
>>>>>>>>
>>>>>>>>         <action name="CancelConfiguration">
>>>>>>>>
>>>>>>>>         
>>>>>> <result>/HTML/tiles/configuration/ConnectionInfo.jspx</result>
>>>>>>  
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="ShowChangePassword">
>>>>>>>>
>>>>>>>>         
>>>>>> <result>/HTML/tiles/configuration/ChangePassword.jspx</result>
>>>>>>  
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="ChangePassword"
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>         
>>>>>>> class="
>>>>>>>       
>>>>>> admintool.http.controller.actions.configuration.ChangePasswordAction">

>>>>>>
>>>>>>  
>>>>>>>>             <result
>>>>>>>> name="input">/HTML/tiles/configuration/ChangePassword.jspx</result>

>>>>>>>>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="ShowChangeServer">
>>>>>>>>
>>>>>>>>         
>>>>>> <result>/HTML/tiles/configuration/ChangeServer.jspx</result>
>>>>>>  
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="ChangeServer"
>>>>>>>>
>>>>>>>> class="
>>>>>>>>         
>>>>>> admintool.http.controller.actions.configuration.ChangeServerAction">
>>>>>>  
>>>>>>>>             <result
>>>>>>>> name="input">/HTML/tiles/configuration/ChangeServer.jspx</result>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="ShowChangeRemotePort">
>>>>>>>>
>>>>>>>> <result>/HTML/tiles/configuration/ChangeRemotePort.jspx</result>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="ChangeRemotePort"
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>         
>>>>>>> class="
>>>>>>>       
>>>>>> admintool.http.controller.actions.configuration.ChangeRemotePortAction">

>>>>>>
>>>>>>  
>>>>>>>>             <result
>>>>>>>> name="input">/HTML/tiles/configuration/ChangeRemotePort.jspx</result>

>>>>>>>>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="ShowChangeMail">
>>>>>>>>             
>>>>>>>> <result>/HTML/tiles/configuration/ChangeMail.jspx</result>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="ChangeMail"
>>>>>>>>
>>>>>>>> class="admintool.http.controller.actions.configuration.ChangeMailAction

>>>>>>>>
>>>>>>>>         
>>>>>> ">
>>>>>>  
>>>>>>>>             <result
>>>>>>>> name="input">/HTML/tiles/configuration/ChangeMail.jspx</result>
>>>>>>>>         </action>
>>>>>>>>
>>>>>>>>         <action name="ShowChangeThreads">
>>>>>>>>
>>>>>>>>
>>>>>>>>         
>>>>>>> === message truncated ===
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------

>>>>>>>
>>>>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>>>>
>>>>>>>
>>>>>>>       
>>>>>> ---------------------------------------------------------------------

>>>>>>
>>>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>>>
>>>>>>
>>>>>>     
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message