struts中的web.xml以及如何使用struts-config.xml进行配置

问题描述 投票:2回答:3
<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>
java xml java-ee netbeans struts
3个回答
5
投票

显示的配置文件说明:

  • 所有以.do结尾的网址都将由名为action的servlet处理
  • 名为action的servlet对应于类org.apache.struts.action.ActionServlet

3
投票

以下是Struts的工作原理:

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

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


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>
© www.soinside.com 2019 - 2024. All rights reserved.