java - Struts2 网址无法访问

标签 java struts2 actionresult xml-configuration struts2-namespace

我真的在用 Struts2 绞尽脑汁——我可以通过省略部分路径来访问 JSP 页面。请注意假设包含 pages/welcome_user.jsp 的路径。关键是看路径中的单词pages

这是 struts.xml 文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

    <package name="default" namespace="/User" extends="struts-default">
        <action name="Login">
            <result>pages/login.jsp</result>
        </action>
        <action name="Welcome" class="com.mkyong.user.action.WelcomeUserAction">
            <result name="SUCCESS">pages/welcome_user.jsp</result>
        </action>
    </package>
</struts>

我可以通过以下方式访问 login.jsp:http://localhost/Struts2Example/User/Login
welcome_user.jsp 通过:http://localhost/Struts2Example/User/Welcome
请注意,在这两个 URL 中,我都可以删除 pages,为什么?

来源: http://www.mkyong.com/misc/how-to-use-mkyong-tutorial/

有人可以通过上面的教程告诉我哪里出了问题吗?

最佳答案

首先,您使用了映射到 struts.xml 中的操作的 URL。

执行操作方法并返回结果代码SUCCESS。您可以在操作配置中找到此结果。然后执行结果,如果没有设置结果的类型默认是dispatcher,并且请求被转发到结果配置中指定的位置。

如果位置是相对的,最终的绝对位置将由用于该操作的包的命名空间决定。

您可以在示例 Struts 2 Namespace configuration example and explanation 中找到更详细的使用命名空间示例和说明.

如果您使用转发到 JSP 的 dispatcher 结果,则不能删除页面。在这种情况下,URL 已被重写,您看不到最终 URL。

关于java - Struts2 网址无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374356/

相关文章:

java - com.mchange.v2.resourcepool.CannotAcquireResourceException : A ResourcePool could not acquire a resource from its primary factory or source

java - 使用通用 Controller 时,如何返回特定 Controller 固有的 View ?

java - 鱿鱼 :S2583 : Change this condition so that it does not always evaluate to "true"

java - 如何在java中创建包含转义序列的字符串而不使用StringEscapeUtils类?

java - struts html字符编码和解码

java - 如何使用blueimp jQuery文件上传: Empty file upload result in Struts 2,文件项为空

java - Struts 2 JSON JQuery Grid 不点击 Action

asp.net-mvc-4 - 嵌套模型绑定(bind)

c# - 在不缓存数据的情况下覆盖 ActionResult

java - 获取错误消息 ServletActionRedirectResult 与 ServletDispatcherResult 不兼容