Question Aucun résultat défini pour l'action et la saisie du résultat


J'utilise Struts2

Je reçois une erreur car aucun résultat ne définit l'action et le résultat

<action name="update" method="updatePhase" class="Project">
   <result name="updated">/Project.jsp</result>
</action>

Mon action ne passe pas à ma classe java.

Quelqu'un peut-il m'aider?


11
2018-04-21 09:41


origine


Réponses:


Le message d'erreur signifie qu'un résultat nommé input n'a pas été défini pour votre action Le résultat input est un résultat par défaut renvoyé par Struts en cas de problème de validation des paramètres transmis à une action. Ainsi, je recommande à vérifiez et assurez-vous que les paramètres que vous transmettez de votre formulaire HTML correspondent aux paramètres de votre action. Vérifier l'orthographe, les types de données, etc.


37
2018-04-21 10:35



J'ai eu la même erreur et j'ai changé mon fichier struts.xml

from
<action name="Registeration101" class="Registeration101">
        <result name="success">pages/inputform.jsp</result>
        <result name="done">pages/quoteSuccess.jsp</result>
    </action>
 to
    <action name="Registeration101" class="Registeration101">
        <result name="success">pages/inputform.jsp</result>
        <result name="input">pages/inputform.jsp</result>
        <result name="done">pages/quoteSuccess.jsp</result>
    </action>

essentiellement result name = "input" n'a pas été défini


3
2017-09-25 06:40



Supposons que vous veniez de x.jsp.

Parfois, lorsque vous placez une annotation de validation dans votre classe de beans, vous utilisez dans votre action et ne fournissez pas x.jsp, une exception est levée.

Si vous ne souhaitez pas valider l'entrée, supprimez simplement l'annotation de validation de la classe du bean.


2
2017-12-17 11:50



Une solution consiste à spécifier un résultat avec le nom "input" pour l'action. C'est ainsi que j'ai résolu mon problème via l'annotation.

Avant:

@Action(value = "sendFeedback", results = {
    @Result(name = SUCCESS,type = "json"),
    @Result(name = ERROR,type = "json")})

Après:

@Action(value = "sendFeedback", results = {
    @Result(name = SUCCESS,type = "json"),
    @Result(name = INPUT, type = "json"),
    @Result(name = ERROR,type = "json")})

1
2018-06-26 08:49



Réponse simple - se produit lorsque vous fournissez une entrée incorrecte. Par exemple - si vous avez un champ nommé "firstName" qui est de type char et si vous indiquez une entrée incorrecte (comme, int)


1
2017-11-13 06:57



Le cas le plus courant est la présence du plug-in de convention. Recherchez-le avec une "convention" et supprimez-le. Une description plus détaillée suivra bientôt.


1
2018-01-09 15:20



<action name="update" method="updatePhase" class="Project">
   <result name="updated">/Project.jsp</result>
   <result name="input">/Project.jsp</result> <!-- add input return type as well in your struts.xml -->
</action>

Généralement, votre execute () / updatePhase () dans le contrôleur retourne mis à jour si tout se passe bien. Mais il y a d'autres types de retours qui seront pris en charge.

Vous pouvez le gérer manuellement en défiant vos valeurs de retour et

<result name="yourReturnValue">/Project.jsp</result> 

À l'intérieur de l'étiquette correspondante.

J'espère que c'est clair maintenant.


0
2017-08-05 12:49



Si vous avez remplacé la méthode validate dans votre fichier de classe (class = "project" dans votre cas), alors elle requiert les valeurs d'entrée nécessaires que vous utilisez dans la méthode validate. Vous pouvez soit transmettre les valeurs nécessaires, soit modifier certaines validations dans la méthode de validation.


0
2017-12-14 02:58



Le nom du résultat dans action et struts.xml devrait être égal. Cependant, si vous obtenez cette erreur, cela peut être un problème de fichier JAR. Essayez d'ajouter ce fichier jar à votre bibliothèque: javassist-3.9.0.GA.jar.


-1
2018-02-21 09:16



Je pense que vous devez donner un nom complet sous l'étiquette class="" dans struts.xml . alors il va commencer à passer votre action.


-1
2017-12-28 12:32