2
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

当我为我的项目选择 struts 框架时,上面的代码是由我的 IDE 自动生成的。我没有看到任何名为action的 servlet 。请解释这个xml是什么意思?

编辑 :

我读到 ActionServlet 已经配置了 struts-config.xml 文件。它是如何配置的?

<struts-config>

<form-beans>
<form-bean name="HelloWorldActionForm"

type="com.vaannila.HelloWorldActionForm"/>

<action-mappings>
<action input="/index.jsp" name="HelloWorldActionForm" path="/HelloWorld"  scope="session" type="com.vaannila.HelloWorldAction">
<forward name="success" path="/helloWorld.jsp" />
</action>
</action-mappings>
4

3 回答 3

5

显示的配置文件是这样说的:

  • 所有以结尾的 URL.do都将由名为action
  • servlet 命名action对应于类org.apache.struts.action.ActionServlet
于 2012-04-04T04:28:15.183 回答
3

以下是 Struts 的工作原理:

Struts 有一个 FrontController。这意味着所有请求都通过这个控制器。这是 org.apache.struts.action.ActionServlet。该类使用struts-config将请求传递给其他类。

您已指定每次 URL:/HelloWorld请求时,ActionServlet 将请求传递给类com.vaannila.HelloWorldAction当您的类返回成功时,ActionServlet 将显示 jsp:helloWorld.jsp

于 2012-04-04T04:31:03.340 回答
0

默认情况下,ActionServlet 配置为您的 Web 应用程序项目目录下的 /WEB-INF/struts-config.xml 文件。

例如:如果您的项目名称是 StrutsPractice 那么您可以在路径 /StrutsPractice/src/main/webapp/WEB-INF/struts-config.xml 中找到默认配置文件

要显式配置 ActionServlet 或者您想将其配置到不同路径中的配置文件,那么您可以在 web.xml 中配置它,如下所示

<servlet>
    <servlet-name>strutspractice</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>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>strutspractice</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
于 2019-04-19T03:59:36.887 回答