wel.xml是这样配置的:
<welcome-file-list>
<welcome-file>index.action</welcome-file>
</welcome-file-list>
struts是这样配置的:
<action name="index" >
<result type="redirectAction">index_view</result>
</action>
<action name="index_*" class="com.syspro.action.IndexAction" method="{1}">
<result name="success" >/template/index.ftl</result>
</action>
我开始这样以为的,当访问项目的URL时(http://127.0.0.1:8080/test/),tomcat会根据web.xml中欢迎文件的配置自动在URL后加上index.action。而这个url会被struts拦截,所以会转向IndexAction,最后会转向index.ftl文件。
但实际是,这样的配置会报资源没找到的错误。
解决办法是在根目录下创建一个index.action(要与web.xml中的欢迎页面相同)文件。为什么湿这样子的呢?
因为tomcat加载web.xml时,会找所配置的欢迎页面是否存在,不存在则报错。注意,此时并没有URL被请求。而上面的情况就是,当tomcat找index.action这个文件时,没找到,所以报错了。所以根本没有请求url。而当在根目录下加一个index.action时,因为找到了文件,所以不会报错。然后 tomcat继续加载其他文件,当文件加载完时,开始请求这个URL(http://127.0.0.1:8080/test/index.action),以便打开欢迎页面。当请求这个URL时,这个URL被struts拦截,转向action处理,从而index.action文件没被打开。所以无论index.action填的什么,都不会显示。
另外,按照web.xml的配置, struts会拦截所有的URL,所以无论index.action的后缀是action还是别的什么,都可以转向到index的action。单实际上却不是如此,为什么呢?
因为struts.xml中有这个struts.action.extension ,设置struts要处理的action的。
一般可以设置成 这样:
<constant name="struts.action.extension" value="do,action" />
如果不设置呢,就默认为action。所以上面的例子只有后缀为你配置的struts.action.extension中的后缀时才成功。
分享到:
相关推荐
总结来说,`struts.xml` 负责Struts2的Action配置,`applicationContext.xml` 管理Spring的Bean和依赖,而`web.xml` 定义了Web应用的基本结构和组件。这三个文件共同协作,构建了一个功能完善的Java Web应用,实现了...
这种配置方式下,Spring的初始化和Bean管理是在Struts的Action上下文中完成的,而不是直接在`web.xml`中配置。 Struts2的Spring插件会在Struts配置文件(如struts.xml)中定义一个`<package>`,包含`<interceptors>...
随着技术的发展,虽然现代Web框架如Spring MVC等提供了更为灵活和强大的机制来管理这些操作,但了解如何在`web.xml`中配置action仍然是非常有用的,尤其是在维护旧项目或者特定场景下。 #### 三、配置步骤详解 ...
在 struts1 框架中,web.xml 文件是必不可少的配置文件之一,它用于配置 Struts 应用程序的核心组件 ActionServlet。本文将详细解释 web.xml 文件中的配置项和相关知识点。 1. 配置 Struts 的 ActionServlet 在 ...
Struts框架在Web.xml中的配置 Struts框架是Java EE中的一种基于MVC模式的Web应用程序框架,它提供...在Web.xml中配置Struts框架需要配置ActionServlet和初始化参数,以便Servlet容器能够正确地加载和使用Struts框架。
Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...
在实际项目中,我们通常会创建一个Spring配置文件,如`spring-struts.xml`,在这个文件中声明需要管理的Action类,以及相关的拦截器和事务管理策略。同时,Struts的配置文件(struts-config.xml或struts2的struts....
javaweb项目中web.xml的作用 web.xml是javaweb项目中一个非常重要的配置文件,它是每一个javaWeb工程都必需的配置文件。web.xml文件的主要作用是...了解web.xml文件的作用和用途对于javaweb项目的开发和维护非常重要。
虽然不是直接在`web.xml`中配置Struts,但Struts2引入了Filter的概念,`struts2-core.jar`包含了一个名为`StrutsPrepareAndExecuteFilter`的Filter,用来处理所有的HTTP请求,替代了Struts1中的ActionServlet。...
Struts 是一个基于 Model-View-Controller (MVC) 设计模式的Java Web框架,它使得开发者能够更方便地构建动态、数据驱动的Web应用程序。`struts-config.xml`是Struts框架的核心配置文件,它定义了应用的各个组件及其...
总结一下,Spring在`web.xml`中的配置主要关注ApplicationContext的初始化和配置文件的位置,而Struts中的配置则是在Struts2配置文件中声明Action和其依赖。两者的主要区别在于初始化时机和依赖管理的方式,Spring的...
在Struts中,`struts.xml`和`struts.properties`是两个关键的配置文件,它们定义了应用的行为和设置。下面将详细讲解这两个配置文件的内容、用途以及如何配置。 **一、struts.xml配置详解** `struts.xml`是Struts2...
6. **Action的映射(<action>标签)**:在Struts2.0中,`web.xml`里不直接配置Action,而是通过配置文件(如struts-default.xml, struts-plugin.xml, struts.xml等)来定义Action的配置。 除了上述基本配置外,`web...
在Struts2框架中,配置文件`struts.xml`和`web.xml`是核心部分,它们定义了应用程序的行为和路由规则。随着版本的更新,配置方式也会有所改变。以下是Struts2.5版本中`struts.xml`和`web.xml`配置的更改方法: **1....
Struts.xml文件是Apache Struts 2框架的核心配置文件,它用于定义应用程序的行为、Action映射、结果页面、拦截器等关键组件。在深入讲解struts.xml之前,我们先来了解与之相关的struts.properties文件。 struts....
在实际项目中,开发者需要在web.xml中配置`SpringModuleFilter`和`SpringModuleInitListener`,确保Spring能够正确初始化并参与Struts的生命周期。同时,需要在Spring的配置文件中声明Struts相关的bean,如Action、...
`struts.xml`是Struts2框架的核心配置文件,用于定义应用程序的行为、控制器、动作映射、结果类型和其他关键组件。下面我们将深入探讨`struts.xml`的各个方面。 1. **配置文件结构** `struts.xml`文件通常位于项目...
本教程将详细讲解如何手动搭建一个完整的Struts2环境,包括引入所有必要的jar包以及配置struts.xml和web.xml文件。 首先,我们需要准备Struts2的核心库。Struts2框架依赖于一系列的jar包,这些包包含了从控制器到...
在Struts2 v2.1.6中,确保所有必需的jar包都被包含在类路径中,并正确配置`web.xml`以启动和配置Struts2框架。这将使你的应用程序能够解析Action、执行业务逻辑,并通过视图呈现结果。在实际开发中,还需要遵循最佳...