提问人:workerjoe 提问时间:8/2/2023 最后编辑:Roman Cworkerjoe 更新时间:8/3/2023 访问量:56
在 Apache Struts 中,如何在不编写 Action 类的情况下重定向到外部 URL?
In Apache Struts, how can I redirect to an external URL without writing an Action class?
问:
在我的 Struts 应用程序中,我需要创建一个端点 (URL),它只是告诉用户的浏览器重定向到外部 URL。
看起来这可以通过创建一个新的 Action 类并定义一个新结果来完成,但这似乎有点矫枉过正。我不需要 Action 类来执行任何类型的处理,只需简单的重定向即可。<result type='redirect'>
有没有办法在配置文件中简单地用一两行来设置端点?
答:
1赞
Roman C
8/3/2023
#1
您可以使用操作配置创建端点,而无需类。然后添加结果类型。您可以将它与任何扩展 .Action
redirect
struts-default
<package name="default" namespace="/" extends="struts-default">
<action name="redirect_to_outside_website/*">
<result type="redirect">{1}</result>
</action>
</package>
您可以在此处查看更多详细信息。
若要在操作名称中使用斜杠,应使用以下常量
<constant name="struts.enable.SlashesInActionNames" value="true"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
上面的示例可以使用通配符映射器(这是 Struts 2 中的默认映射器)重定向到任何 URL。如果需要修复配置文件中的 URL,则可以将固定的 URL 直接放置到标签中。<result>
<package name="default" namespace="/" extends="struts-default">
<action name="redirect_to_outside_website">
<result type="redirect">https://server_domain/my_fixed_location</result>
</action>
</package>
评论
0赞
workerjoe
8/3/2023
是的,这有效。我发现,如果我想简单地重定向到固定的 URL,我可以在元素(您拥有的地方)中删除目标并对其进行硬编码。你想把它添加到答案中吗?/*
result
{1}
1赞
Roman C
8/3/2023
当然,刚刚添加。
评论
struts.xml
redirect
redirect
struts.xml