Действие не найдено, почему нет?

Я создал действие с помощью метода, как показано ниже:

public class NomenclatureAction extends ActionSupport {

    // ...

    @Actions({
      @Action(value = "ajaxDoStuff",
              results = {
                    @Result(name = ActionSupport.SUCCESS, location = "success.jsp"),
                    @Result(name = ActionSupport.INPUT, location = "fail.jsp") 
              }),
      @Action(value = "index.action",
              results = {
                    @Result(name = ActionSupport.SUCCESS, location = "success.jsp"),
                    @Result(name = ActionSupport.INPUT, location = "fail.jsp") 
              })
    })
    public final String doStuff() {
        // ...
        return ActionSupport.SUCCESS;
    }

}

Я хочу вызвать тот же метод doStuff с одним из приведенных ниже URL-адресов:

Пока это работает для первых двух URL-адресов, но не для последних двух.
Что я упустил?


person Stephan    schedule 27.01.2016    source источник
comment
@AleksandrM Можете ли вы выразить свою мысль в ответе?   -  person Stephan    schedule 27.01.2016
comment
Только что заметил, что вы хотите использовать полный результат conf.   -  person Aleksandr M    schedule 27.01.2016


Ответы (1)


Атрибут value не должен содержать расширения.

@Action(value = "index.action",
  results = {
        @Result(name = ActionSupport.SUCCESS, location = "success.jsp"),
        @Result(name = ActionSupport.INPUT, location = "fail.jsp") 
  })

Вы также можете попробовать http://my-server.com/public/namespace, который должен обрабатываться обработчиком соглашения uknown, который включен по умолчанию.

person Roman C    schedule 27.01.2016
comment
Спасибо, это работает как шарм! Знаете ли вы, можно ли разделить результаты между двумя действиями без глобальной аннотации результата непосредственно в классе? - person Stephan; 27.01.2016
comment
Результаты настроены на конфигурацию действия, и вы не можете изменить ее во время выполнения. Только если вы пишете расширения для плагина соглашения или используете собственный провайдер, или вы можете просто создать результат на лету. - person Roman C; 27.01.2016
comment
Конфигурация @Results одинакова для обоих действий. Как не переписывать эту конфигурацию два раза для удобства чтения? - person Stephan; 27.01.2016
comment
К сожалению, вы можете использовать @Results только в классе. Но вы можете использовать подстановочные знаки в сопоставлении шаблонов URL. - person Roman C; 27.01.2016