转载自: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文件中修改
<struts>
<constant name="struts.action.extension" value="action"></constant>
……