我真的在用 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/