miércoles, abril 20, 2011

Botones de submit dinámicos con Struts2

En ocasiones he tenido la necesidad de poder tener más de un botón de submit en un mismo formulario, teniendo estos distintas acciones, claro está.
6
Esto se puede resolver estableciendo el atributo "method" del elemento s:submit con el nombre de un determinado método que se ejecutará en la clase action destino. Tal que así:


<form action="unaAccion">
<s:submit method="ver" value="Ver"/>
<s:submit method="cancelar" value="Cancelar"/>
</form>


Y luego, en la clase action, establecer los métodos ver y cancelar así:


public class UnaAccion {
public String ver() {
return Action.SUCCES;
}

public String cancelar() {
return Action.SUCCES;
}
}


Pero hay otras ocasiones en las que tenemos más métodos de los que, razonablemente, pordríamo mapear y, además podemos complicarlo con que cada médoto debería recibir un dato del submit pulsado.

Para eso podemos usar la creación de submit dinámicos, más o menos sería así:


<form action="borrarEntrada.action">
<s:iterate value="entradas">
<s:property value="titulo">
<input type="submit" name="borrar[<s:property value='id'>]" value="borrar"/>
<br/>
</s:iterate>
</form>


Luego, el valor del botón pulsado se pordría recoger en la clase action de la siguiente forma:


public class BorrarEntradaAction {

private final Map borrar = new HashMap ();

public String execute () {
super.execute ();

for (Iterator i = borrar.keySet ().iterator (); i.hasNext ();) {
String id = (String) i.next ();
System.out.println (id);
}
}

public final Map getBorrar () {
return borrar;
}
}


Evidentemente, en el for solamente tendremos un item cuyo valor será el id que hemos asignado en la JSP.

Espero que, por lo menos, os ahorre el tiempo que a mí me ha costado encontrarlo :)

viernes, marzo 18, 2011

Duke Nukem Forever... ¡¡por fin!!

Más de una década ha pasado. Por fin, cuando nadie lo esperaba, el juego va a ver la luz este mismo año. Podéis ver los detalles en la web oficial. Se prevé que este disponible en mayo y que se distribuya a través de Steam.

No está recomendado para menores de 18 años, ya que aquellos que conozcáis al personaje, sabréis que es aficionado al sexo y a las palabras subidas de tono. En este sentido, el juego no decepciona XD.

Este es el trailer oficial.