lunes, 12 de marzo de 2007

'SetParameter' para la request

Me he topado con la necesidad de pasar por request un parameter, pero sólo tengo lo de "setAttribute" desde un Action.

Solución:
1.-Yo uso DispatchAction, pues en algún método que retorne ActionForward y que sea el que usen de base (en mi caso findSuccess), hacen lo siguiente:
  
//obtengo el path actual de la request
String uri = ServletPathUtils.getCompleteURL( request );
//llamo a la función que me da la nueva url a la que quiero ir
String url=miRequestNueva(uri);
//retorno el action forward con el redirect a true para que me redirija.
return ( new ActionForward( url,true ) );


2.-Función que me da la nueva dir a la que quiero ir

private String miRequestNueva(String uri){
String miRequestPath=uri;
//tomo la url y lo que hay luego de la última barra lo voy a cambiar
int ultimoIndexBarra= miRequestPath.lastIndexOf("/");
String primeraParte=miRequestPath.substring(0,ultimoIndexBarra+1);
//esto va a ser el final de mi request, cambio el action y paso un parámetro
String segundaParte="NuevaAction?paginate=true;
String requestCompuesta=primeraParte+segundaParte;
return requestCompuesta;
}

No hay comentarios: