Tiene un formulario y varios botones de envío. El problema es que un formulario solo puede enviarse a una acción, independientemente de la cantidad de botones de envío que tenga dentro del formulario.
Tres soluciones vienen a la mente en este momento:
1. tener sólo una acción en la que envíe todo. Una vez dentro de la clase de Acción, compruebe qué botón se utilizó para enviar el formulario y realizar el tratamiento adecuado en función de eso.
<html:form action="modify">
..
..
<html:submit value="delete"/>
<html:submit value="edit" />
<html:sumit value="update" >
</html:form>
En el método ModifyAction.execute(...)
tener algo como:
if (request.getParameter("delete") != null || request.getParameter("delete.x") != null) {
//... delete stuff
} else if (request.getParameter("edit") != null || request.getParameter("edit.x") != null) {
//...edit stuff
} else if (request.getParameter("update") != null || request.getParameter("update.x") != null) {
//... update stuff
}
2. tienen el atributo de acción del formulario HTML cambiarse usando JavaScript antes de enviar el formulario. En primer lugar, cambiar los botones de someterse a las sencillas con manipuladores clic adjuntos:
Con el manejador:
function submitTheForm(theNewAction) {
var theForm = ... // get your form here, normally: document.forms[0]
theForm.action = theNewAction;
theForm.submit();
}
3. Utilice A (clase de una acción similar al punto 1) DispatchAction
pero sin la necesidad de probar para qué botón se hizo clic ya que se trata en el DispatchAction
.
Usted acaba de proporcionar tres métodos de ejecución correctamente llamados delete
, edit
y update
. Here is an example that explains how you might do it.
En conclusión: Para el número 1, no me gustan esas pruebas feas ... para el número 2, realmente no me gusta el hecho de que tienes que jugar con el formulario de acción usando JavaScript, así que personalmente me gustaría llamar al para obtener el número 3.
Muchas gracias .... Déjame intentar ... – Nageswaran
realmente buena orientación dada por usted - +1 – Naved
Wow. Exactamente lo que necesito ¡Gracias un montón! – ykombinator