web-dev-qa-db-fra.com

attribut d'entrée de l'action de mappage d'action struts

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">
21
rabs

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.

30
Ken Chan

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.

4
highlycaffeinated

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.

1
Oh Chin Boon

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();
}
0
Ahmed MANSOUR