一个小小的Strust2例子css
而后发现css,js,图片用不了,debugger下发现没法访问这些资源(404错误),妈的,那个例子明明能够的,起码从书上的图片看。java
发现是web.xml中的过滤器的问题,代码是这样的:git
web.xmlgithub
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
红色部分的代码过滤了全部的访问。这样不就是连css,js等资源的访问也过滤掉了吗?可是那个书上的例子是这样写的,你们都是这样写的。为毛!!。妈蛋。web
strust.xml文件只是配个一个action。apache
滚上github看看完整的项目,找个很久,发现一个相似的项目应用了Strust2,也应用了css等资源文件。而后web.xml文件跟个人如出一辙,可是注意到Strust.xml文件有一个特别之处。就是如下这一行:app
<constant name="struts.action.excludePattern" value="/static/.*?" /><!-- default locale -->
static文件就是放置css,js,图片等资源的地方,代码旁边也注释到。jsp
妈蛋原来是这样。url
在Strust.xml中的<strust>标签下加上这一行代码就行了,(static换成根文件夹下放在资源文件的文件夹)spa
如今位于这个文件架下的全部资源文件均可以访问了!
不过记得引用路径最好是绝对路径。这个已是老问题了。