转载自:http://blog.sina.com.cn/s/blog_4b6f8d150100ghu4.html

最近在用jfreechart做web图片的生成,在仿照网络上一个简单的例子写完程序后,发现图片确实在temp下生成,可是在页面中显示的确实红叉!!!这个问题困扰我好久,郁闷到疯狂的地步。网上提到的可能性都试遍了,可还是不能解决。后来想到,是不是struts2把servlet的请求拦截了呢?于是,对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-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>
 <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/user/*</url-pattern>
 </filter-mapping>

问题解决。

参考资料:http://www.javaeye.com/topic/441581

http://www.javaeye.com/topic/441581

http://www.javaeye.com/wiki/problem/5540

http://www.javaeye.com/problems/5540

http://topic.csdn.net/u/20090928/13/d6b8a09f-b48d-47e9-9b17-5aaf8beed4d6.html

 

 补充:

据前辈说:“是struts2把servlet当成action了,因为servlet和action都是没有后缀的。
解决办法:struts2中有个配置,用以识别action的规则的。你去改一下”

“…………”

“方法1:统一在servlet后面加上.servlet(包括web.xml配置文件中和页面上使用servlet的地方)
方法2:在struts.xml文件中修改struts2拦截了servlet请求的解决_xml配置

<struts>

<constant name="struts.action.extension" value="action"></constant>

……