struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeromy Evans <jeromy.ev...@blueskyminds.com.au>
Subject Re: File Upload
Date Tue, 22 Jan 2008 09:58:07 GMT
I'd use a breakpoint in to inspect the content of the data variable.  Is 
it a tree of Nodes or is it plain text/html?  If the former it can be 
appended/inserted directly into the DOM with the respective method. If 
the latter the code below would be throwing a NPE and you can use 
innerHTML=data.

innerHTML also has a few quirks in IE6 and IE7. Dojo itself may include 
some functions for manipulating the DOM reliably.  Check the 0.4 API.

Pablo Vázquez Blázquez wrote:
> Hello again,
>
> If I change:
> load: function(type, data, evt){
>          document.getElementById("mydiv").innerHTML =
> data.firstChild.innerHTML;
>
> for:
>
> load: function(type, data, evt){
>          document.getElementById("mydiv").innerHTML = 'HELLO';
>
> it works. But I want to show the response content. Do you know why 
> "data.firstChild.innerHTML" is "undefined"??
>
> Thanks.
>
>
> Pablo Vázquez Blázquez escribió:
>> 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
>>
>
>
> ---------------------------------------------------------------------
> 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