gpt4 book ai didi

java - Strut2有多个包会导致问题

转载 作者:太空宇宙 更新时间:2023-11-04 07:04:22 24 4
gpt4 key购买 nike

这是我在 Struts.xml 文件中的包结构

<package name="default" namespace="/" extends="struts-default">


<!-- Default action name <default-action-ref name="Index" /> -->

<action name="Index" method="index"
class="com.convergent.struts2.actions.UserAction">
<result name="success" type="dispatcher">/WEB-INF/html/index.jsp</result>
</action>

</package>

<include file="struts-admin.xml"></include>

我的Index.jsp是通过这个url访问的

http://localhost:8888/Index

在索引页面中,有一个超链接可以将该用户重定向到设置页面。设置操作位于“Admin”命名空间中,因此可以通过以下方式访问:

<a href="<s:url action='Admin/Setting'/>">Setting</a>

在设置页面中有一个超链接可以将用户重定向到index.jsp页面。 Action 的调用方式如下:

<a href="<s:url action='Index'/>">go back</a>

如您所见,“索引”操作位于具有命名空间“/”的默认包中。因此,为了处理此操作, namespace 将被更改,并且用户将被重定向到 index.jsp 页面。我的问题是,虽然用户被重定向到 index.jsp 页面,但 web url 看起来像

http://localhost:8888/Admin/Index

我想要这个网址

http://localhost:8888/Index

我不知道如何解决这个问题。有人可以建议我吗?

最佳答案

“如您所见,‘索引’操作位于默认 namespace 中。” - 不,它位于默认包和命名空间“/”中。

建议:1)不要在没有前导“/”的情况下创建 namespace ,它通常不是您想要的。有关命名空间的基本使用,请参阅 http://struts.apache.org/release/2.1.x/docs/namespace-configuration.html尽管该页面不包括不带前导斜杠的 namespace 的创建以及您所经历的有趣行为。

2)使用struts2 url标签的namespace属性。使用 Struts 时,标签引用是您的 friend :http://struts.apache.org/release/2.3.x/docs/tag-reference.html

正如 Roman 提到的,使用 anchor 标记会更加直接。

仅使用您拥有的 url 标记:

<a href="<s:url namespace='/' action='Back'/>">go back</a>

当这更清楚一点时:

<s:a namespace="/" action="Back">go back</s:a>

关于java - Strut2有多个包会导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631399/

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