Una forma de direccionar parámetros por medio de la URL en Struts 2… <rediect-action><param>…
Google, Programación, Struts2 18 de March del 2009
Cuando tienes un formulario de búsqueda o una actualización y necesitas hacer los ver los cambios… y además que la JSP muestre los resultados ya actualizados… pues hay dos problemas… que para mostrar la consulta de resultados pues seguramente esta en un Action y otra que la modificación este en otro… pero aunque este en el mismo no podrías recibir los mismo parámetros del formulario…
Entonces se podría hacer esto:
Supongamos que este Action es el que muestra los alumnos de un filtro de una búsqueda:
JSP de búsqueda:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <s:form action="buscaAlumnos" method="post"> <s:textfield name="name" cssClass="textInput" maxlength="50" size="20" label="Name" required="false" /> <s:textfield name="lastname" cssClass="textInput" maxlength="150" size="30" label="Lastname" required="false" /> </s:form> |
Action que procesa la búsqueda y que se le envían los parámetros anteriores:
1 2 3 4 | <action name="buscaAlumnos" class="com.buscar" method="buscar"> <result type="chain">listaAlumnos</result> <result name="error"> errorBuscar</result> </action> |
En el JSP que muestra los resultados, colocamos un link para poder borrar a un usuario:
1 2 3 4 5 | <s:url id="Url" action="Nombre_del_mapeo" escapeAmp="false"> <s:param name="name" value="name" /> <s:param name="lastname" value="lastname" /> </s:url> <a href="<s:property value="%{Url}"/>"><s:text name="Borrar alumno"/></a> |
Y este otro Action tiene que borrar al alumno y regresar con los datos de posibles filtros de la búsqueda realizada, ósea con el NAME Y LASTNAME del JSP donde esta el formulario:
1 2 3 4 5 6 7 8 9 | <action name=" Nombre_del_mapeo" class="com.delete" method="input"> <result name="success" type="redirect-action"> <param name="actionName">./buscaAlumnos.action</param> <param name="parse">true</param> <param name="name">${name}</param> <param name="lastname">${lastname}</param> </result> <result name="error" type="tiles">errorDelete</result> </action> |
Tenemos que tener su get y set de los atributos:
Action Delete.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | private String name;
private String lastname;
public String getName()
{
return name;
}
/**
* @param name the name to set
*/
public void setName(String name)
{
this.name = name;
}
/**
* @return the lastname
*/
public String getLastname()
{
return lastname;
}
/**
* @param lastname the lastname to set
*/
public void setLastname(String lastname)
{
this.lastname = lastname;
} |
Y después de realizar el proceso de borrado. Este reenviará al Action buscaAlumnos los parámetros por medio de la URL y así poder repetir la búsqueda y…
1 | http://...../buscaAlumnos.action?name=Valor&lasname=Valor |
entonces el JSP que muestra la búsqueda volverá actualizarse sin mostrar al Alumno borrado. Y listo!!!!
Sobre mí









Es lo mismo cuando queremos accesar a un action del tipo:
Nombre!metodo.action ???
gracias!!
Si claro… es lo mismo o aquì tienes otro ejemplo:
que estaría asì