关于Struts2怎么处理静态资源的路径!!!

SpringMVC里面有个<mvc:resources/>标签可以将某个路径转移到另一个目录下

比如<mvc:resources mapping = "/**" location = "/WEB-INF/"/>可以将根目录下的资源转移到WEB-INF目录里

那Struts2里面有没有类似这样的功能呢?

### Struts2 拦截静态文件配置 为了使 Struts2 正确处理并允许访问项目中的静态资源(如 CSS 和 JavaScript 文件),需要调整 Struts2 的默认行为,防止其核心过滤器拦截这些静态资源。具体来说,在 `struts.xml` 或者 `web.xml` 中进行适当设置可以实现这一目标。 #### 方法一:通过 struts.xml 配置排除模式 可以在 `struts.xml` 文件中加入特定常量定义来指定哪些 URL 路径下的请求不应该被 Struts2 处理: ```xml <constant name="struts.action.excludePattern" value="/static/.*?"/> ``` 这段 XML 片段告诉 Struts2 不要将 `/static/` 开始的任何路径视为动作调用的一部分[^1]。因此,放置在这个目录下的所有静态资源都将绕过 Struts2 的控制逻辑而直接返回给客户端浏览器。 #### 方法二:修改 web.xml 来阻止 Struts2 过滤器处理某些类型的请求 另一种解决方案是在应用服务器级别的部署描述符 (`web.xml`) 中更精确地配置 Struts2 Filter 映射规则。这通常涉及到缩小 `<url-pattern>` 元素的作用范围,使其仅匹配预期的动作请求而不是所有的 HTTP 请求。 然而,上述提到的方法已经足够满足大多数场景的需求,并且更加简洁易懂[^3]。 #### 示例代码展示如何在 JSP 页面引用静态资源 假设有一个名为 `main.js` 的 JavaScript 文件位于项目的 `/static/js/main.js` 目录下,则可以通过如下方式将其链接到 JSP 页面中: ```html <script src="${pageContext.request.contextPath}/static/js/main.js"></script> ``` 这里 `${pageContext.request.contextPath}` 动态获取当前 Web 应用上下文路径,确保即使应用程序不是根上下文也能正确解析相对路径
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值