在Struts 2中,可以将Action的名称属性作为路径吗?

时间:2016-07-14 23:54:34

标签: java web-applications configuration struts2 struts

在Struts 2中,action的name属性可以是路径吗?我的意思是它可以是以下内容:

<action name="/api/method/call" ...>

是否有任何来源解释了Struts配置中的操作标记可以具有哪些属性。 Struts似乎真的没有文档。

2 个答案:

答案 0 :(得分:2)

您可以在此部分Action Names查看文档。然而,由于领先的斜线,它与你的不一样。

  

动作名称带斜杠

     

如果您的动作名称中包含斜杠(例如,
  <action name="admin/home" class="tutorial.Admin"/>   )你需要具体   通过struts.xml中的常量允许动作名称中的斜杠   文件通过指定
  <constant name = "struts.enable.SlashesInActionNames" value = "true"/>。请参阅JIRA问题WW-1383进行讨论   将此属性设置为true的副作用。

您可以删除前导斜杠并查看它是否有效或使用Action Annotation的常规插件。

  

动作注释

     

Convention插件允许操作类更改URL   它们映射到使用@Action注释。这个注释可以   也可以在@Actions注释中使用以允许多个URL   映射到单个动作类。必须定义此注释   像这样的行动方法:

public class HelloWorld extends ActionSupport {
  @Action("/different/url")
  public String execute() {
    return SUCCESS;
  }
}
     

我们的操作类现在将映射到URL /different/url而不是   /hello-world。如果没有指定@Result(参见下一节),那么   动作的命名空间将用作结果的路径   我们的最后一个例子是/WEB-INF/content/different/url.jsp

答案 1 :(得分:0)

docs链接供您参考。

cordova plugin add com.lampa.startapp

您可以在动作名称中使用斜杠,但不建议, https://stackoverflow.com/a/19114364/5086633