Можно ли сопоставить метод действия, который возвращает объект в 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
, поэтому он не должен использоваться в качестве типа результата.
продолжение следует