gpt4 book ai didi

java - 如何找出文件在Struts中的位置?

转载 作者:行者123 更新时间:2023-12-04 06:28:56 25 4
gpt4 key购买 nike

我想知道如何在 Struts 中找出文件的位置。
文件所在的位置
这是程序的一部分:

<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

我知道 .do将是项目中任何文件的扩展名,但我没有得到它的位置。我对 struts 一无所知。

提前致谢

最佳答案

您的 .do您的 URL 模式是(@Jigar Joshi 提到的)要查看它的映射位置,您必须在浏览器上查看您的 URL:

假设你有 http://localhost:8080/myapp/login.do ,然后是 .do正在被您的 Web 容器看到并调用您的 Struts Servlet org.apache.struts.action.ActionServlet .

支柱 ActionServlet然后会看到你的相对路径 /login (看看我是如何忽略 .do 的)并查看它是否映射到您的 config 上文件(在您的情况下 /WEB-INF/struts-config.xml )。

从那里开始,Struts ActionServlet检查是否有与您的相对路径匹配的操作路径,如下所示:

<action path="/login" type="com.myapp.action.LoginAction" name="LoginForm" scope="request">

</action>

如果那 <action>找到后,Struts 会调用 com.myapp.action.LoginAction类(class)并调用 execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception方法(如果该类只是一个简单的 Action 类)。

我希望这有帮助。

在您的 <action> 内element 您可能会发现另一个名为 <forward> 的元素, 例子:
<forward name="FHome" path="/content/jsp/home.jsp" />

转发 name属性基本上是您的 Struts Action 在返回 ActionForward 时调用的内容。 ,这样的代码:
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
return mapping.findForward("FHome");
}

请记住, forwardactionstruts-config.xml 中的元素称为本地转发。全局远期位于 action 外元素。
pathforward element 是 Struts 必须调用(和 web/servlet 容器)来呈现的 jsp 页面的相对路径。

希望这可以为您解决问题。

关于java - 如何找出文件在Struts中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5675149/

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