`
liulanghan110
  • 浏览: 1072715 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

关于web.xml的首页和struts的action的问题

阅读更多

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中的后缀时才成功。

 

 

分享到:
评论
1 楼 yz_zhouwt 2012-07-22  
谢谢,今天也遇到同样的问题。

相关推荐

    struts.xml和applicationContext.xml、web.xml的配置

    总结来说,`struts.xml` 负责Struts2的Action配置,`applicationContext.xml` 管理Spring的Bean和依赖,而`web.xml` 定义了Web应用的基本结构和组件。这三个文件共同协作,构建了一个功能完善的Java Web应用,实现了...

    spring在web.xml中和在struts中的不同配置..pdf

    这种配置方式下,Spring的初始化和Bean管理是在Struts的Action上下文中完成的,而不是直接在`web.xml`中配置。 Struts2的Spring插件会在Struts配置文件(如struts.xml)中定义一个`&lt;package&gt;`,包含`&lt;interceptors&gt;...

    在web.xml中配置action或.do

    随着技术的发展,虽然现代Web框架如Spring MVC等提供了更为灵活和强大的机制来管理这些操作,但了解如何在`web.xml`中配置action仍然是非常有用的,尤其是在维护旧项目或者特定场景下。 #### 三、配置步骤详解 ...

    struts1中web.xml配置详解

    在 struts1 框架中,web.xml 文件是必不可少的配置文件之一,它用于配置 Struts 应用程序的核心组件 ActionServlet。本文将详细解释 web.xml 文件中的配置项和相关知识点。 1. 配置 Struts 的 ActionServlet 在 ...

    Web.xml中配置Struts[参考].pdf

    Struts框架在Web.xml中的配置 Struts框架是Java EE中的一种基于MVC模式的Web应用程序框架,它提供...在Web.xml中配置Struts框架需要配置ActionServlet和初始化参数,以便Servlet容器能够正确地加载和使用Struts框架。

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...

    org.springframework.web.struts-3.1.0.M2.jar

    在实际项目中,我们通常会创建一个Spring配置文件,如`spring-struts.xml`,在这个文件中声明需要管理的Action类,以及相关的拦截器和事务管理策略。同时,Struts的配置文件(struts-config.xml或struts2的struts....

    javaweb项目中web.xml的作用

    javaweb项目中web.xml的作用 web.xml是javaweb项目中一个非常重要的配置文件,它是每一个javaWeb工程都必需的配置文件。web.xml文件的主要作用是...了解web.xml文件的作用和用途对于javaweb项目的开发和维护非常重要。

    Web.xml中配置Struts[文].pdf

    虽然不是直接在`web.xml`中配置Struts,但Struts2引入了Filter的概念,`struts2-core.jar`包含了一个名为`StrutsPrepareAndExecuteFilter`的Filter,用来处理所有的HTTP请求,替代了Struts1中的ActionServlet。...

    struts-config.xml

    Struts 是一个基于 Model-View-Controller (MVC) 设计模式的Java Web框架,它使得开发者能够更方便地构建动态、数据驱动的Web应用程序。`struts-config.xml`是Struts框架的核心配置文件,它定义了应用的各个组件及其...

    spring在web.xml中和在struts中的不同配置.[收集].pdf

    总结一下,Spring在`web.xml`中的配置主要关注ApplicationContext的初始化和配置文件的位置,而Struts中的配置则是在Struts2配置文件中声明Action和其依赖。两者的主要区别在于初始化时机和依赖管理的方式,Spring的...

    struts.xml和struts.properties配置详解

    在Struts中,`struts.xml`和`struts.properties`是两个关键的配置文件,它们定义了应用的行为和设置。下面将详细讲解这两个配置文件的内容、用途以及如何配置。 **一、struts.xml配置详解** `struts.xml`是Struts2...

    sruts2.0 web.xml 配置文件

    6. **Action的映射(&lt;action&gt;标签)**:在Struts2.0中,`web.xml`里不直接配置Action,而是通过配置文件(如struts-default.xml, struts-plugin.xml, struts.xml等)来定义Action的配置。 除了上述基本配置外,`web...

    struts.xml文件详解.doc

    Struts.xml文件是Apache Struts 2框架的核心配置文件,它用于定义应用程序的行为、Action映射、结果页面、拦截器等关键组件。在深入讲解struts.xml之前,我们先来了解与之相关的struts.properties文件。 struts....

    org.springframework.web.struts-sources-3.0.4.RELEASE.jar

    在实际项目中,开发者需要在web.xml中配置`SpringModuleFilter`和`SpringModuleInitListener`,确保Spring能够正确初始化并参与Struts的生命周期。同时,需要在Spring的配置文件中声明Struts相关的bean,如Action、...

    struts.xml(struts2配置)

    `struts.xml`是Struts2框架的核心配置文件,用于定义应用程序的行为、控制器、动作映射、结果类型和其他关键组件。下面我们将深入探讨`struts.xml`的各个方面。 1. **配置文件结构** `struts.xml`文件通常位于项目...

    Struts2手动搭建所有的jar包及相应的struts.xml和web.xml

    本教程将详细讲解如何手动搭建一个完整的Struts2环境,包括引入所有必要的jar包以及配置struts.xml和web.xml文件。 首先,我们需要准备Struts2的核心库。Struts2框架依赖于一系列的jar包,这些包包含了从控制器到...

    struts2版本 2.1.6 必须的jar包 和 web.xml 文件的修改

    在Struts2 v2.1.6中,确保所有必需的jar包都被包含在类路径中,并正确配置`web.xml`以启动和配置Struts2框架。这将使你的应用程序能够解析Action、执行业务逻辑,并通过视图呈现结果。在实际开发中,还需要遵循最佳...

    truts.xml-struts.properties-详

    Struts是Apache软件基金会(ASF)赞助的一个开源项目,它是一个...这个压缩包可能包含了关于Action配置、拦截器配置、结果类型、异常处理、国际化和自定义配置等方面的详细讲解,对提升你的Struts 2技能非常有帮助。

Global site tag (gtag.js) - Google Analytics