Foros del Web » Programación para mayores de 30 ;) » Java »

[Problema] - Struts2 ...

Estas en el tema de [Problema] - Struts2 ... en el foro de Java en Foros del Web. Hola amigos, Pues en una vista resulta que en función del valor que obtengo en una accion.. pues realizo un "if"...etc. Si es verdadera la ...
  #1 (permalink)  
Antiguo 07/09/2010, 09:18
 
Fecha de Ingreso: agosto-2010
Mensajes: 21
Antigüedad: 14 años, 2 meses
Puntos: 0
[Problema] - Struts2 ...

Hola amigos,

Pues en una vista resulta que en función del valor que obtengo en una accion.. pues realizo un "if"...etc.

Si es verdadera la condicion.... he de descargar un archivo... pero este archivo depende del valor de la anterior acción y no se como capturarlo en la accion="DownloadSubtitleAction"



Código HTML:
Ver original
  1.     <head>
  2.         <title>Detalle de Subtitulo</title>
  3.     </head>
  4.     <body>
  5.         <h2>Listado de contenido</h2>
  6.        
  7.         <hr>
  8.  
  9.         <s:if test="lineas.size() == 0">
  10.             No hay lineas disponibles
  11.         </s:if>
  12.         <s:else>
  13.  
  14.            
  15.         <h2><s:property value="descripcion"/></h2>
  16.    
  17.    
  18.           <s:if test="completo == true">
  19.          
  20.           <s:form action="DownloadSubtitleAction" >        
  21.                
  22.             <!-- Intento capturar la descripcion del subtitulo para poder descargar
  23.            correctamente dicho subtitulo a traves de la ruta adecuada.-->  
  24.              <s:param name="descripcion"/>
  25.  
  26.                 <s:submit value="DESCARGAR" />
  27.           </s:form>
  28.          
  29.          
  30.  
  31.  
  32.          
  33.        
  34.          <s:form action="NewEpisodeAction">
  35.                  <s:submit value="NUEVA TRADUCCIÓN" />
  36.          </s:form>
  37.          
  38.       </s:if>
  39.  
  40.       <s:elseif test="completo == false">
  41.        <s:form action="TraduccionAction">
  42.                  <s:submit value="VER O EDITAR" />
  43.        </s:form>
  44.       </s:elseif>
  45.          
  46.         <s:form action="ActualizoComentarios">
  47.         <s:submit value="Enviar"/>
  48.         <s:textarea label="Comentarios" name="comment" cols="60" rows="10"  />
  49.        
  50.         </s:form>
  51.        
  52.  
  53.            
  54.            
  55.            
  56.         </s:else>      
  57.        
  58.     </body>
  59. </html>



Primeramente, vengo de una acción que le pasa a la vista que acabo de mostraros...

Cita:
<h2><s:property value="descripcion"/></h2>
Ese valor "descripcion" que es un titulo descripcion de un archivo...

la complicación viene.. cuando en el formulario de descarga que podeis ver...

Cita:
<s:form action="DownloadSubtitleAction" >

<!-- Intento capturar la descripcion del subtitulo para poder descargar
correctamente dicho subtitulo a traves de la ruta adecuada.-->
<s:param name="descripcion"/>

<s:submit value="DESCARGAR" />
</s:form>
Es decir, cuando yo "pincho" en en el botón "Descargar"... se activa el Actoin "DownloadSubtitleAction" ... y me es imprescindible que se le pase el valor "descripcion" que venia del action anterior y que mostrado en ese "property"...



Pues eso amigos... he intentado ya de todo. pero no funciona nada...


Saludos.
  #2 (permalink)  
Antiguo 07/09/2010, 09:29
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: [Problema] - Struts2 ...

En vez de usar <s:param name="descripcion"/> dentro del formulario, ¿por qué no usas <s:hidden name="descripcion" />?.

Si tienes un bean "descripcion" con el contenido que quieres, aprovéchalo.
  #3 (permalink)  
Antiguo 07/09/2010, 09:37
 
Fecha de Ingreso: agosto-2010
Mensajes: 21
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: [Problema] - Struts2 ...

DownloadSubtitleAction.java - Action

Código HTML:
Ver original
  1. public class DownloadSubtitleAction extends ActionSupport implements ServletRequestAware{
  2.  
  3.     private static final long serialVersionUID = 1L;   
  4.  
  5.     private String descripcion;
  6.    
  7.    
  8.  
  9.     public String getDescripcion() {
  10.         return descripcion;
  11.     }
  12.  
  13.     public void setDescripcion(String descripcion) {
  14.         this.descripcion = descripcion;
  15.     }


A ese action, quiero hacerle llegar el descripcion...

Código HTML:
Ver original
  1. <h2><s:property value="descripcion"/></h2>

Pero ahi que observar, que ese valor viene de otro ACTION .... que he de intentar redirigir ó llevar al action "downloa...etc" como ya he dicho.


Saludos.
  #4 (permalink)  
Antiguo 07/09/2010, 09:44
 
Fecha de Ingreso: agosto-2010
Mensajes: 21
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: [Problema] - Struts2 ...

Ok , eso lo acabo de solucionar!.


Pero cuando se abre la ventanita de descarga.. me aparece el nombre que tengo puesto en el Struts.xml.

Existe alguna otra forma de poder poner el nombre, pues que originalmente tiene el archivo?


Parte de mi Struts.xml

Código HTML:
Ver original
  1. <action name="DownloadSubtitleAction" class="action.DownloadSubtitleAction" >
  2.            
  3.            
  4.             <result name="success" type="stream">
  5.        <param name="contentType">application/octet-stream</param>
  6.       <param name="inputName">fileInputStream</param>
  7.       <param name="contentDisposition">attachment;filename="lost.srt"</param>
  8.       <param name="bufferSize">1024</param>  
  9.     </result>
  10.            
  11.            
  12.             <result name="error">download_fail.jsp</result>
  13.            
  14.         </action>


Como podeis observar, en "contentDisposition", pues tengo puesto como nombre "lost.srt"... y al descargar cualquier tipo de archivo, pues siempre se llama asi.
  #5 (permalink)  
Antiguo 07/09/2010, 12:31
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: [Problema] - Struts2 ...

En el action descripcion = lost.srt o lo que quieras

En struts.xml

<param name="contentDisposition">attachment;filename="${d escripcion}"</param>

No sé si te dará problemas por ir entre comillas, si puedes no las uses.

Sigo diciendo que para lo que tu quieres no deberías usar params, si lo que quieres es sólo descargar un archivo, ni siquiera deberías usar una action, podrías hacerlo desde la JSP.

Etiquetas: struts2, tags
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:11.