找不到操作或结果。没有为支柱 2 中的操作定义结果



我已经将注释配置为以文本形式返回值。但是它给了我错误:could not find action or result .

控制台错误:

org.apache.struts2.dispatcher.Dispatcher - Could not find action or result
/part!finder.xhtml
No result defined for action action.PartAction and result success

行动:

@Action(value="part!finder", results = {
    @Result(name="SUCCESS", type="stream", params = {"contentType", "text/html", "inputName", "inputStream"}),
    @Result(name="success", type="stream", params = {"contentType", "text/html", "inputName", "inputStream"})
}) 
public String finder() {
  try {
    inputStream = new ByteArrayInputStream(finder1().getBytes());
  }
  catch(Exception e) { }
    return SUCCESS;
  }
}

修改动作名称,即@Action注释中的value属性为value="part"!是URL中用于分隔操作名和方法名的特殊字符。但不是在动作映射中。通过在动作名称映射中添加!,您可以使正在搜索包含没有!的名称的动作配置的动作映射器无法访问您的动作。这个字符分隔了操作名和方法名,所以在操作配置中它是不合适的。

顺便说一句,在构造URL并且打开DMI时(默认是打开的),那么最好使用method属性到urlsubmit标记,并且映射到您的操作的正确URL将在JSP呈现(处理结果)之后创建。您可以检查输出到浏览器的HTML,以查看页面的HTML源代码。您可能会发现映射到(非默认)方法的操作的前缀是!符号。您可以显式地或通过标记将方法添加到操作URL中,以执行方法,而不是与操作映射。

如果您正在使用DMI,请在级别应用@Action,并让DMI完成其余的工作。

如果你在操作级别注释,声明一个唯一的操作名,不要使用DMI。

(或其语法;这是令人困惑。)

相关内容

  • 没有找到相关文章

最新更新