Struts2.0标签$ # %详解:理解它们的区别

5星 · 超过95%的资源 需积分: 3 9 下载量 191 浏览量 更新于2024-09-22 收藏 78KB DOC 举报
"本文详细介绍了Struts2.0框架中三个重要的符号`$`、`#`和`%`的区别,并探讨了Struts2的标签体系,包括通用标签、控制标签、UI标签和AJAX标签的使用。此外,还特别讲解了`<s:property>`和`<s:set>`两个常用标签的属性和用法。" 在Struts2.0中,`$`、`#`和`%`是三个特殊的符号,它们分别在不同的上下文中起到不同的作用: 1. **`$`** 主要用于国际化(i18n)和Struts2配置文件。它用于引用资源包中的消息,比如在国际化文件中,你可以通过`${key}`来获取对应的语言字符串。同时,在配置文件中,`$`也是用来引用配置项的。 2. **`#`** 用于取得ActionContext中的值。ActionContext是Struts2中存储请求和响应数据的核心容器,你可以通过`#{key}`来访问其中的值。例如,`#{session.user}`可以获取到Session中的用户对象。 3. **`%`** 用于将原本的文本属性解析为OGNL(Object-Graph Navigation Language)表达式。如果属性已经是OGNL表达式,使用`%`就不起作用。例如,`<s:property value='%{user.name}'/>`会解析并执行OGNL表达式,获取user对象的name属性。 除了这些符号的使用,Struts2的标签系统也非常强大: - **通用标签** 包括`<s:property>`、`<s:set>`等。`<s:property>`用于显示或输出值,它可以处理OGNL表达式,提供默认值和HTML转义功能。`<s:set>`则用于设置变量,可以通过`var`指定变量名,`value`设定变量值,`scope`定义作用范围。 - **控制标签** 如`<s:if>`, `<s:else>`, `<s:elseif>`, `<s:iterator>`等,提供了条件判断和循环控制。`<s:iterator>`可以遍历各种集合类型的数据。 - **UI标签** 提供了主题支持,如`<s:theme>`,以及各种与用户界面相关的标签,如`<s:textfield>`,`<s:textarea>`等,它们帮助构建表单元素并和Struts2的验证机制集成。 - **AJAX标签** 用于实现异步更新,如`<s:a>`和`<s:submit>`的ajax版本,能够创建动态交互的页面效果。 理解并熟练运用这些标签和符号,能极大地提高开发效率,使Struts2的应用更加灵活和高效。在实际开发中,应根据具体需求选择合适的标签和符号,以实现最佳的代码结构和用户体验。