我可以映射 returns Object in Struts 的操作方法吗 2

Can I map an action method that returns Object in Struts 2

我已经使用 Struts2 将操作映射到 return String 的方法。我可以使用其他类型吗?可以使用哪些类型?

我发现该代码使用了 REST 插件

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

表明它映射到 return 方法 show HttpHeaders。而且它不是 String。它是如何工作的?

该框架具有允许 return 而不仅仅是 String 的功能。您可以直接从操作方法 return Result 的实例而不是 String. 例如

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

如果需要 return 多种类型,您可以将 return 类型设置为 Object

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

关于 rest 方法 HttpHeaders 是一个不扩展 Result 的接口,因此不应将其用作结果类型。