通配符映射是Struts框架中的一个重要概念,它允许开发者在一个声明中处理多个相似的action映射关系,从而简化配置过程。在Struts2中,当一个Web应用包含大量的action时,通过使用通配符,如`*`和`{1}`、`{2}`等,可以有效地管理URL模式与action之间的映射关系。
通配符映射规则如下:
1. 如果存在多个匹配,非通配符的映射优先。
2. 如果指定的动作不存在,Struts2会尝试使用包含`*`的通配符映射,寻找匹配的URI。
3. 若有多组通配符匹配,最后匹配的将胜出。
4. `{1}`、`{2}`等用于引用匹配到的URI子串,其中`{0}`代表整个URI。
5. `*`匹配零个或多个字符,不包括`/`,若需包括,用`**`代替;特殊字符需要使用`\`进行转义。
Struts2作为MVC架构的框架,提供了丰富的功能,例如页面导航管理、输入数据验证、统一布局、易于扩展、国际化支持和AJAX集成等。相比于Struts1,Struts2有以下显著优势:
- **松耦合**:Struts2设计上与ServletAPI和StrutsAPI解耦,实现无侵入式开发,降低了对底层API的依赖。
- **拦截器**:Struts2引入拦截器机制,支持面向切面编程(AOP),实现权限控制等功能。
- **类型转换**:内置类型转换器简化了将特殊参数转换为所需类型的过程,无需手动注册。
- **多表现层支持**:Struts2兼容多种视图技术,如JSP、FreeMarker和Velocity等。
- **输入校验改进**:Struts2能够针对指定方法进行校验,改善了Struts1在输入验证上的局限。
- **国际化管理**:提供全局、包和Action范围的国际化资源文件管理,便于多语言应用。
从Struts1升级到Struts2时,需要注意的是,Struts2实际上是WebWork框架的后续版本,而不是简单的Struts1扩展。升级过程中,需要更新原有的配置文件和开发习惯,以适应Struts2的新特性。同时,Struts2在设计理念和开发模式上有较大变化,这要求开发者对新框架有深入理解和学习。