【问题标题】:Can I map an action method that returns Object in Struts 2我可以在 Struts 2 中映射一个返回 Object 的操作方法吗
【发布时间】:2016-03-08 13:04:21
【问题描述】:

我使用 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());
}

它显示它映射到返回HttpHeaders 的方法show。而且它不是String。它是如何工作的?

【问题讨论】:

  • 问:我可以在 Struts 2 中映射一个返回 Object 的动作方法吗?答:是的,你可以。

标签: java struts2 struts2-rest-plugin


【解决方案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 ;
}

关于rest方法HttpHeaders 是一个不扩展Result的接口,所以不应该作为结果类型使用。

【讨论】:

  • 又错了。 HttpHeaders 是一个不扩展 Result 的接口,因此不应该用作结果类型。
  • 这取决于 ActionInvocation 的实现 - REST 插件提供了自己的,这就是它可以处理 HttpHeaders 的原因
猜你喜欢
  • 2012-02-15
  • 2012-01-15
  • 1970-01-01
  • 2011-07-30
  • 2011-09-27
  • 1970-01-01
  • 2021-04-09
  • 2014-05-06
  • 1970-01-01
相关资源
最近更新 更多