2011-04-21 23 views
10

estoy usando Struts2Ningún resultado definido para la acción y el resultado de entrada

me sale error como se define ninguna consecuencia para la acción y el resultado de entrada

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

Mi acción no está pasando a mi clase de Java.

¿Alguien me puede ayudar?

Respuesta

36

El mensaje de error significa que no se ha definido un resultado llamado input para su acción. El resultado input es un resultado predeterminado devuelto por Struts cuando hay un problema con la validación de los parámetros pasados ​​a una acción. Por lo tanto, recomiendo a comprobar y asegurarse de que los parámetros que está pasando desde su formulario HTML coincidan con los parámetros de su acción. Revise la ortografía, los tipos de datos, etc.

+1

Además, asegúrese de no haber definido una entrada con la misma identificación más de una vez –

+0

¡Esto también es muy útil para mí, TNX! – AndreaNobili

-1

Creo que tiene que dar un nombre completo con la etiqueta class="" en struts.xml. Luego comenzará a pasar su acción.

1

Una solución es especificar un resultado con el nombre "entrada" para la acción. Así es como resolví mi problema a través de la anotación.

Antes:

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

Después:

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

que tenía el mismo error y he cambiado mi archivo 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> 

básicamente como resultado name = "entrada" se no definido

-1

El nombre del resultado en Acción y struts.xml debe ser igual. Aún así, si obtiene este error, puede ser un problema con el archivo jar. Intente agregar este archivo jar a su biblioteca: javassist-3.9.0.GA.jar.

0
<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> 

Generalmente su execute()/updatePhase() en el controlador vuelve actualizado si todo va bien. Pero hay otros tipos de devolución que los puntales se encargarán.

Puede manejarlo manualmente por desafiar sus valores de retorno y la correspondiente

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

Dentro dentro de la etiqueta correspondiente.

Espero que esté claro ahora.

0

Respuesta simple: se produce cuando proporciona una entrada incorrecta. Por ejemplo, si tiene un campo llamado "firstName" que es del tipo char y si proporciona una entrada incorrecta (como, int)

0

Si ha reemplazado el método de validación en su archivo de clase (class = "project "en su caso), entonces requiere los valores de entrada necesarios que usa en el método de validación. Puede pasar los valores necesarios o cambiar algunas validaciones en el método de validación.

2

Supongamos que viene de x.jsp.

Algunas veces, cuando pone una anotación de validación en su clase de bean, está utilizando en su Acción y no proporciona x.jsp, se produce una excepción.

Si no desea validar la entrada, simplemente elimine la anotación de validación de la clase de bean.

2

El caso más común es la presencia del complemento de convención. Busque eso con una "convención" y elimine eso. Una descripción más detallada seguirá pronto.

+0

Espero con interés la descripción más detallada. – simon

Cuestiones relacionadas