Je suis un noob en ce qui concerne Java et Struts (je me sens comme .Net boy dans Java world)).
À quoi sert l'attribut d'entrée sur l'élément d'action? Ainsi, dans l'exemple ci-dessous, l'entrée est someinput.jsp.
<action path="/somepath"
type="SomeAction"
name="SomeForm"
scope="session"
input="someinput.jsp">
Si le bean de formulaire SomeForm
renvoie des erreurs de validation, il renverra la page someinput.jsp
. Pour citer le DTD correspondant :
Valide uniquement lorsque "nom" est spécifié. Obligatoire si "nom" est spécifié et que le bean d'entrée renvoie des erreurs de validation. Facultatif si "nom" est spécifié et que le bean d'entrée ne renvoie pas d'erreurs de validation.
Struts transmettra l'utilisateur à la page/action spécifiée dans l'attribut input
si la validation échoue sur le formulaire spécifié dans l'attribut name
.
Nonobstant ce qui précède, il est également possible dans l'exécution de votre action (qu'il s'agisse d'une seule unité d'action ou de plusieurs unités d'action) de spécifier le résultat, c'est-à-dire SUCCESS
, FAILURE
, ou INPUT
.
Le plug-in de validation Struts acceptera l'instance de bean de formulaire créée à partir de la vue et effectuera la validation avant d'aller au contrôleur et si les données sont contraires aux règles de validation de l'utilisateur final, l'objet erreurs est digéré dans la vue d'attribut d'entrée qui est spécifiée comme valeur
C'est pour la redirection vers le jsp dans l'attribut d'entrée. Mais dans votre contrôleur d'action, vous devez spécifier mapping.getInputForward () au lieu de mapping.findForward ().
Fichier Struts-config:
<action input="test.jsp"
name="testActionForm"
path="/test"
scope="session" type="package.TestActionController">
</action>
Contrôleur d'action:
public ActionForward doMethod(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
return mapping.getInputForward();
}