在struts2中,新建的struts.xml文件一般在src目录下面,今天试着把struts.xml文件放到WEB-INF下面,我是这样写的:
<filter>
<!-- 定义核心Filter的名字 -->
<filter-name>struts2</filter-name>
<!-- 定义核心Filter的实现类 -->
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,../struts-configs/struts.xml</param-value>
</init-param>
</filter>
在部署的时候,没有出现任何错误。就是当我在访问以前的Action的时候,出现“There is no Action mapped for action name uiAction.”这样的错误!我把struts.xml放到src下面时,访问Action是没有问题的啊!难倒struts.xml文件的位置改变的时候,访问的路径也要改变吗??我感觉没有必要啊!有经验的高手请指教一下啊!O(∩_∩)O谢谢了!

解决方案 »

  1.   

    放到web-inf下应该是这样的啊/web-inf/struts.xml
      

  2.   

    抱歉,忘了说了,我把struts.xml文件放在WEB-INF下面的struts-configs文件夹中了。我在部署的时候并没有出现错误,就是访问的时候,找不到Action了。就是想问一下,struts.xml文件的路径变了,请求的Action为什么就找不到了啊
      

  3.   

    只能是classpath根路径, 而且名字只能是struts.xml!
    也许你会问为什么没有struts1那样灵活配置.? 这个你得去问webwork/struts2开发团队了,去问问他们为什么要把这个路径和文件名在源码中写死了
      

  4.   

    我现在对struts.xml文件,无语了
      

  5.   


    ....
    难 道 你 把 一 个 文 件 从 C 盘 移 动 到 D 盘 , 你 还 能 从 C 盘 找 到 这 个 文 件 吗?
    除 非 你 是 全 盘 搜 索 文 件 名, 但 是 相 当 影 响 性 能,而 指 定 路 径 并 没 有 多 大 的 代 码  开 销,所 以 sturts 不 会 这 么 干。其他的原因5楼回答的很详细了,关于struts2我也只是了解的程度
      

  6.   

    他NND,谁帮我找一下7楼用空格隔开那一部分哪个词组是非法词组
      

  7.   

    难 道 你 把 一 个 文 件 从 C 盘 移 动 到 D 盘 , 你 还 能 从 C 盘 找 到 这 个 文 件 吗?
    除 非 你 是 全 盘 搜 索 文 件 名, 但 是 相 当 影 响 性 能,而 指 定 路 径 并 没 有 多 大 的 代 码 开 销,所 以 sturts 不 会 这 么 干。
    UP
      

  8.   

       首先Struts2 里面用到的许多东西。都是人家在配置文件中配置好的。你只是简单的修改,而没有修改jar包里面的。框架肯定不知道。还有struts2 的根目录不是webroot 而是你的项目名称。
      

  9.   

    这个是固定的,你下下来的源代码中的示例就是这样的。不过可以定义多个struts的配置文件,然后在struts.xml
    中导入即可
      

  10.   

    下下来示例是这样,那是作者知道他已经把这个东西写死了没办法配置了.! 
    我觉得配置文件不灵活是struts2的一个败笔阿!
      

  11.   

    看你自以为是的内容很郁闷,有本事你自己写个框架?
    早src的struts.xml编译的时候会生成到WIN-INF/class下,在运行项目的时候也是去WIN-INF/class下去找,我认为struts.xml在src下是为了开发者方便编辑,没什么这不好那不好的.