Можно ли сопоставить метод действия, который возвращает объект в Struts 2

Я использовал Struts2 для сопоставления действий с методами, которые возвращают String, Могу ли я использовать другие типы? Какие типы можно использовать?

Я нашел этот код с помощью плагина REST

// Handles /orders/{id} GET requests
public HttpHeaders show() {
    model = orderManager.findOrder(id);
    return new DefaultHttpHeaders("show")
        .withETag(model.getUniqueStamp())
        .lastModified(model.getLastModified());
}

Это показывает, что это соответствует методу show это возвращает HttpHeaders, И это не String, Как это устроено?

1 ответ

Решение

Фреймворк имеет особенности, позволяющие возвращать не только String, Вы можете вернуть экземпляр Result прямо из метода действия вместо String. Например

public Result method() {
  //todo implementation is here  
}

Если необходимо вернуть несколько типов, вы можете установить тип возвращаемого значения как Object,

public Object method() {
    Object resultCode = "success";
    if (something) {
        resultCode = new StrutsResultSupport();
    }
    return resultCode ;
}

О методе отдыха HttpHeaders это интерфейс, который не расширяется Result, поэтому он не должен использоваться в качестве типа результата.


продолжение следует

Другие вопросы по тегам