【问题标题】:Do Struts2 namespaces have to start with a forward slash?Struts2 命名空间是否必须以正斜杠开头?
【发布时间】:2015-02-03 17:45:55
【问题描述】:

我使用 Struts2 框架进行 webapp 开发。在我遇到的每个教程中,我看到所有命名空间都以正斜杠 / 开头。即使是基本的“默认”命名空间也有命名空间"/",而不是空字符串"" 或字符串"default"。这是为什么?是否可以只命名没有斜杠的命名空间?

看起来不能,因为如果我将命名空间从 "/" 更改为 "something else",则无法再找到操作:

Struts 问题报告

Struts 检测到一个未处理的异常:

消息:没有为命名空间 [/] 和操作名称映射的操作 [] 关联上下文路径 [/TestStruts]。

【问题讨论】:

  • 还有什么?
  • 我想将我的命名空间命名为“default”或“global”,而不是“/default”和“/global”。特别是在 url 标签或其他地方引用命名空间时,我发现添加 / 很麻烦
  • @user1884155 命名空间以斜杠开头,用于从上下文中的操作名称和命名空间构建 url。

标签: java struts2 namespaces action-mapping


【解决方案1】:

slash 对命名空间很重要,因为动作映射器可以使用最后一个斜杠从 URL 中提取命名空间和动作名称。

请注意,如果您在操作名称中使用斜杠并始终选择完整的命名空间,则算法可能会改变。

但是你可以使用没有命名空间属性的包声明。在这种情况下,该包中的所有操作都将属于“默认”命名空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多