Нет результата, определенного для действия и результата ввода

Я использую Struts2

Я получаю ошибку, поскольку результат не определяется для результата действия и результата

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

Мое действие не переходит к моему классу java.

Кто-нибудь может мне помочь?

Ответ 1

Сообщение об ошибке означает, что результат с именем input не был определен для вашего действия. Результат input - результат по умолчанию, возвращаемый Struts, когда есть проблема с проверкой параметров, переданных действию. Таким образом, я рекомендую проверить и убедиться, что параметры, которые вы передаете из своей HTML-формы, соответствуют параметрам вашего действия. Проверьте орфографию, типы данных и т.д.

Ответ 2

У меня была такая же ошибка, и я изменил файл 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>

в основном результат name= "enter" не определен

Ответ 3

Предположим, что вы пришли из x.jsp.

Несколько раз, когда вы добавляете аннотацию проверки в свой класс bean, вы используете в своем действии и не предоставляете x.jsp, исключение исключается.

Если вы не хотите проверять ввод, просто удалите аннотацию проверки из класса bean.

Ответ 4

Наиболее распространенным случаем является наличие условного плагина. Посмотрите на что-нибудь с "конвенцией" в нем и удалите это. Ниже будет приведено более подробное описание.

Ответ 5

Одним из решений является указание результата с именем "enter" для действия. Вот как я решил свою проблему с помощью аннотации.

До:

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

После:

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

Ответ 6

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

Как правило, ваш execute()/updatePhase() в контроллере возвращается, если все идет хорошо. Но есть и другие типы возвратов, которые будут заботиться о стойках.

Вы можете обрабатывать его вручную, игнорируя возвращаемые значения и соответствующие

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

Внутри соответствующего тега.

Надеюсь, теперь это ясно.

Ответ 7

Простой ответ - случается, когда вы вводите неверный ввод. Например, если у вас есть поле с именем "firstName", которое имеет тип char, и если вы указали неверный ввод (например, int)

Ответ 8

Если вы переопределили метод проверки в своем файле класса (class= "project" в вашем случае), то для этого требуются необходимые входные значения, которые вы используете в методе проверки. Вы можете либо передать необходимые значения, либо изменить некоторые проверки в методе проверки.

Ответ 9

Думаю, вам нужно дать полное имя под тегом class="" в struts.xml. затем он начнет передавать ваше действие.

Ответ 10

Имя результата в Action и struts.xml должно быть равно. Тем не менее, если вы получаете эту ошибку, это может быть проблема с файлом jar. Попробуйте добавить этот файл jar в свою библиотеку: javassist-3.9.0.GA.jar.