gpt4 book ai didi

java - 如何在 Struts 2 操作名称中允许使用斜杠?

转载 作者:行者123 更新时间:2023-12-01 23:32:31 25 4
gpt4 key购买 nike

我正在尝试在 Struts 2 操作名称中启用斜杠。我已将其放入我的配置文件中:

<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.action.extension" value=","/>
<constant name="struts.multipart.maxSize" value="2147483648" />
<constant name="struts.enable.SlashesInActionNames" value="true"/>

<package name="myApp" extends="struts-default">
<action name="home" class="net.myapp.actions.HomeAction" method="execute">
<result name="landing">/landing.jsp</result>
</action>
<action name="/ajax/foo" class="net.myApp.actions.ajax.FooAction" method="execute">
<result name="success">/foo.jsp</result>
</action>
</package>

</struts>

当我仅访问此应用程序的主页时,例如 http://localhost:8034/myApp,我正确地看到了主页。但是,如果我访问 http://localhost:8034/myApp/ajax/foo,我会收到错误:没有为操作名称 ajax/foo 映射的操作。 甚至尽管我在上面将其描述为第二个操作。

我做错了什么?

最佳答案

我想说您还需要一个 namespace ,因此 ajax 将是您案例中的 namespace :

<package name="myApp" extends="struts-default" namespace="/ajax">    
<action name="foo" class="net.myApp.actions.ajax.FooAction" method="execute">
<result name="success">/foo.jsp</result>
</action>
</package>

请注意,您可以在操作名称中使用斜杠,例如foo/bar,但不建议这样做,因为某些插件(例如对话插件)可能难以从 /ajax/foo/bar 等字符串确定 namespace 和操作>.

顺便说一句,错误消息显示没有为操作名称 ajax/foo 映射的操作。,即 struts 查找名为 ajax/foo 的操作,但您只有一个操作 /ajax/foo

关于java - 如何在 Struts 2 操作名称中允许使用斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19114283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com