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

时间:2012-04-04 04:24:41

标签: java xml java-ee netbeans struts

<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>

3 个答案:

答案 0 :(得分:5)

显示的配置文件显示:

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

答案 1 :(得分:3)

以下是Struts的工作原理:

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

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

答案 2 :(得分: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>