Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/12/2005, 17:40
axz
 
Fecha de Ingreso: mayo-2005
Mensajes: 360
Antigüedad: 19 años, 7 meses
Puntos: 10
Respuesta

bien, creo que nadie no muchos han contestado a esta pregunta y aunque me llevó un buen ratote de investigar y destazar las clases ... por fín lo logré ... y por si en algún momento a alguien le es necesario hacerlo ...

Código PHP:
package utiles.Util;

import org.apache.struts.taglib.bean.MessageTag;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.JspException;
import org.apache.struts.util.RequestUtils;
import org.apache.struts.util.ResponseUtils;

/**
 * A diferencia de su superclase ... permite imprimir el valor del tag <bean:message key="a.b" />
 * con solo enviar el valor de la clave como parámetro, además permite guardar el contenido de dicho
 * tag en una variable.
 * @author Aristóteles Quintanar Ramos.
 */
public class BeanMessage extends MessageTag
{
  public 
String mensaje "";

  
/**
   * CONSTRUCTOR ... instancía el objeto.
   * @param pageContext - Objeto de tipo PageContext que hace referencia a la página actual.
   */
  
public BeanMessagePageContext pageContext )
  {
    
super();
    
this.setPageContextpageContext );
  }
  
  
/**
   * Realiza la misma acción que al llamar al tag <bean:message key="a.b" />.
   * @throws javax.servlet.jsp.JspException
   * @param clave String - Contendría la clave <i>a.b</i>.
   */
  
public void ImprimeBeanMessageString clave throws JspException
  
{
    
CreaBeanMessageclavetrue );
  }
  
  
/**
   * Obtiene el valor del tag <bean:message key="a.b" /> sin imprimirlo en pantalla.
   * @throws javax.servlet.jsp.JspException
   * @return String - Valor traducido del tag <bean:message ...
   * @param clave String - valor que se pasa como parámetro (<i>a.b</i>) al tag
   *        <bean:message key="a.b" />
   */
  
public String DevuelveBeanMessageString clave throws JspException
  
{
    return( 
CreaBeanMessageclavefalse ) );
  }
  
  
/**
   * Obtiene el valor del tag <bean: message key="a.b" />, la impresión o no impresión en pantalla
   * del valor devuelto dependerá del valor del parámetro <i>imprime</i>.
   * @throws javax.servlet.jsp.JspException
   * @return String con el valor traducido del tag <bean:message ... independientemente del parámetro
   *         <i>imprime</i>.
   * @param imprime boolean - Indica si se imprimirá o no en pantalla el valor devuelto por el tag
   *        <bean:message ...
   * @param clave String - Valor pasado como parámetro al tag en el atributo <i>key</i>.
   */
  
private String CreaBeanMessageString claveboolean imprime throws JspException
  
{
    
this.setKeyclave );
    
this.doStartTagimprime );
    
this.release();
    
    return 
this.mensaje;
  }
  
  
/**
   * Realiza exatamente lo mismo que la función doStartTag de la superclase, con la diferencia de que
   * la impresión o no impresión en pantalla del valor devuelto por el tag <bean:message key="a.b" />
   * dependerá del valor del parámetro <i>imprime</i>.
   * @throws javax.servlet.jsp.JspException
   * @return int - Devuelve el control a la página actual.
   * @param imprime boolean - Indica si el valor devuelto por el tag se imprimirá o no en pantalla.
   */
  
private int doStartTagboolean imprime throws JspException
  
{
    
String key this.key;
    if( 
key == null )
    {
      
Object value RequestUtils.lookuppageContextnamepropertyscope );
      if( 
value != null && !( value instanceof String ) )
      {
        
JspException e = new JspExceptionmessages.getMessage"message.property"key ) );
        
RequestUtils.saveExceptionpageContext);
        throw 
e;
      }
      
key = ( String )value;
    }
    
    
Object args[] = new Object];
    
args] = arg0;
    
args] = arg1;
    
args] = arg2;
    
args] = arg3;
    
args] = arg4;
    
    
String message RequestUtils.messagepageContextthis.bundlethis.localeKeykeyargs );
    if( 
message == null )
    {
      
JspException e = new JspExceptionmessages.getMessage"message.message""\"" key "\"" ) );
      
RequestUtils.saveExceptionpageContext);
      throw 
e;
    }

    
this.mensaje message;
    if( 
imprime )
    {
      
// Print the retrieved message to our output writer
      
ResponseUtils.writepageContextmessage );
    }

    return( 
SKIP_BODY );
  }

y la forma de usarla desde un .jsp


Código PHP:
<%@ page import="utiles.Util.BeanMessage" %>
<%
BeanMessage mensajes = new BeanMessagepageContext );
mensajes.ImprimeBeanMessage"all_forms.code" );

String valor mensajes.DevuelveBeanMessage"all_forms.exit" );
%>
<%= 
valor %> 
ojalá le sirva a alguien ... saludos

Última edición por axz; 25/07/2006 a las 19:17 Razón: se me fué el dedo