Struts 2 6.2 URL 参数映射方法
Struts2本身不原生支持REST风格的路径参数(如/save-user.action/name/joe/age/20),但可通过前置URL重写过滤器(如TuckeyURLRewriteFilter)将路径格式转换为标准查询参数格式,再交由Struts2处理。

Struts 2 本身不原生支持 REST 风格的路径参数(如 /save-user.action/name/joe/age/20),但可通过前置 URL 重写过滤器(如 Tuckey URLRewriteFilter)将路径格式转换为标准查询参数格式,再交由 Struts 2 处理。
Struts 2 本身不原生支持 REST 风格的路径参数(如 `/save-user.action/name/joe/age/20`),但可通过前置 URL 重写过滤器(如 Tuckey URLRewriteFilter)将路径格式转换为标准查询参数格式,再交由 Struts 2 处理。
在 Struts 6.2(兼容 Struts 2 约定插件 convention-plugin)中,Action 默认通过 .action 后缀匹配,且参数通常以 ?key=value 查询字符串形式传入。而路径参数(path variables)如 /save-user.action/name/joe/age/20 属于 RESTful 风格,Struts 核心拦截器链无法直接解析该结构——它会在进入 StrutsPrepareAndExecuteFilter 前就因路径不匹配或参数未绑定而失败。
✅ 推荐方案:使用 Tuckey URLRewriteFilter 进行预处理
该过滤器需部署在 StrutsPrepareAndExecuteFilter 之前,实现「请求重写」而非「重定向」,确保原始请求上下文(如 HttpServletRequest)中的 request.getRequestURL() 和 getQueryString() 已被改写为 Struts 可识别的形式。
配置步骤如下:
添加依赖(Maven)
org.tuckey urlrewritefilter 4.0.4 配置 web.xml(注意过滤器顺序!)
UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter UrlRewriteFilter /* REQUEST
定义重写规则(src/main/webapp/WEB-INF/urlrewrite.xml)
^/([^.]+\.action)(?:/([^/]+)/([^/]+))* /$1 $2=$3 /save-user.action/name/([^/]+)/age/(\d+) /save-user.action?name=$1&age=$2
⚠️ 注意事项:
- 正则中使用 & 而非 &,避免 XML 解析错误;
- 若参数数量不固定,建议采用第一种通用正则 + 自定义 UrlRewriteRule 类扩展逻辑;
- 所有重写均发生在服务器端(forward),客户端无感知,不影响 Action 中 @Action 注解或 convention-plugin 的自动参数注入;
- Struts 6.2 默认启用 alwaysSelectFullNamespace,请确保命名空间与重写后 URL 匹配(如 /save-user.action 对应 namespace="" 或 /);
- 开发阶段可启用 UrlRewriteFilter 调试日志(设置
)验证重写是否生效。logLevel DEBUG
完成配置后,请求 save-user.action/name/joe/age/20 将被静默转为 save-user.action?name=joe&age=20,Struts 2 即可正常绑定至 Action 的 name 和 age 属性(需提供对应 setter 方法),无需修改任何业务代码。此方案轻量、稳定,是 Struts 生态中处理路径参数的事实标准实践。
Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。
Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。
Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。
PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。













