当前位置: 代码迷 >> Web前端 >> struts2的web.xml中的url对应
  详细解决方案

struts2的web.xml中的url对应

热度:35   发布时间:2012-10-10 13:58:11.0
struts2的web.xml中的url对应。
参考http://blog.csdn.net/gavin812428144/archive/2010/03/22/5405728.aspx
今天在运行项目时,页面突然报错“dojo未定义”!奇怪了,昨天还好好的,怎么今天就出了这个问题呢,在<SCRIPT type="text/javascript" scr="/dojo.js">里指明dojo库文件路径后还是也不行,郁闷死了。结果上网找了一下,发现有位仁兄跟我的问题差不多,看了他的解释才恍然大悟。原来,我也像他一样,昨天结束的时候在web.xml改变了一些配置。本来的配置如下:

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>
   org.apache.struts2.dispatcher.FilterDispatcher
  </filter-class>
</filter>

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

后来被我改成了:

<filter>
  <filter-name>struts2</filter-name>
  <filter-class>
   org.apache.struts2.dispatcher.FilterDispatcher
  </filter-class>
</filter>


<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.action</url-pattern>
</filter-mapping>

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.jsp</url-pattern>
</filter-mapping>

这样就导致.js文件没有走FilterDispatcher,类似的,如果你项目里有.css文件,也会出现问题。

找到了问题,我便在配置文件继续添加:

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/struts/*</url-pattern>
</filter-mapping>

经测试,一切正常。
  相关解决方案