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 BeanMessage( PageContext pageContext )
{
super();
this.setPageContext( pageContext );
}
/**
* 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 ImprimeBeanMessage( String clave ) throws JspException
{
CreaBeanMessage( clave, true );
}
/**
* 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 DevuelveBeanMessage( String clave ) throws JspException
{
return( CreaBeanMessage( clave, false ) );
}
/**
* 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 CreaBeanMessage( String clave, boolean imprime ) throws JspException
{
this.setKey( clave );
this.doStartTag( imprime );
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 doStartTag( boolean imprime ) throws JspException
{
String key = this.key;
if( key == null )
{
Object value = RequestUtils.lookup( pageContext, name, property, scope );
if( value != null && !( value instanceof String ) )
{
JspException e = new JspException( messages.getMessage( "message.property", key ) );
RequestUtils.saveException( pageContext, e );
throw e;
}
key = ( String )value;
}
Object args[] = new Object[ 5 ];
args[ 0 ] = arg0;
args[ 1 ] = arg1;
args[ 2 ] = arg2;
args[ 3 ] = arg3;
args[ 4 ] = arg4;
String message = RequestUtils.message( pageContext, this.bundle, this.localeKey, key, args );
if( message == null )
{
JspException e = new JspException( messages.getMessage( "message.message", "\"" + key + "\"" ) );
RequestUtils.saveException( pageContext, e );
throw e;
}
this.mensaje = message;
if( imprime )
{
// Print the retrieved message to our output writer
ResponseUtils.write( pageContext, message );
}
return( SKIP_BODY );
}
}
y la forma de usarla desde un .jsp
Código PHP:
<%@ page import="utiles.Util.BeanMessage" %>
<%
BeanMessage mensajes = new BeanMessage( pageContext );
mensajes.ImprimeBeanMessage( "all_forms.code" );
String valor = mensajes.DevuelveBeanMessage( "all_forms.exit" );
%>
<%= valor %>
ojalá le sirva a alguien ... saludos