Struts2 property标签详解与实战
"Struts2配置详解 - property标签的使用及Struts2框架介绍" Struts2框架是一个基于Model-View-Controller(MVC)模式的Java Web应用程序开发框架,由Craig R. McClanahan创建并捐献给Apache软件基金会。自2001年发布以来,Struts2在2005年进行了重大更新,引入了多项改进和新特性,旨在解决Struts1框架中的设计问题和提供更强大的功能。 **property标签详解** 在Struts2中,`<s:property>`标签用于在视图层输出指定的值。它有以下几个主要属性: 1. **default**: 这是一个可选属性,当指定要输出的属性值为null时,`default`属性指定的值将被显示。例如,`<s:property value="#name" default="a default value" />`,如果`#name`的值为空,将显示"一个默认值"。 2. **escape**: 此属性用于指定是否需要对输出的HTML内容进行转义。默认情况下,Struts2会自动转义HTML标签以防止XSS攻击。若设置`escape="false"`,则允许输出HTML代码,如`<s:property value="%{'<hr> hr的使用'}" escape="false" />`,这将直接输出HTML水平线而非字符串。 3. **value**: 这是另一个可选属性,用于指定要输出的属性值。如果未指定,`<s:property/>`将默认输出ValueStack栈顶的值。例如,`<s:property/>`会输出栈顶的`username`和`msgxx`的值。 **Struts2的优点** Struts2相对于Struts1有以下显著优势: 1. **无侵入式设计**: Struts2的应用程序并不依赖Servlet API或Struts API,降低了框架与应用之间的耦合度。在Struts1中,Action类通常需要继承自`Action`类,而在Struts2中,Action类可以独立于框架存在。 2. **拦截器**: Struts2引入了拦截器(Interceptor),支持面向切面编程(AOP)。拦截器可用于权限控制、日志记录等多种场景,增强了框架的可扩展性和灵活性。 3. **类型转换**: Struts2提供内置的类型转换器,可以自动将请求参数转换为期望的数据类型,而无需像Struts1那样手动注册转换器。 4. **多视图技术支持**: Struts2支持JSP、FreeMarker、Velocity等多种视图技术,允许开发者根据需求选择合适的技术。 5. **输入验证**: Struts2的验证机制可以针对特定的方法进行,避免了Struts1中全局验证的繁琐。 6. **国际化与本地化管理**: Struts2提供了对全局、包和Action范围内的国际化资源文件的支持,简化了多语言环境下的开发。 **Struts1与Struts2的区别** 从Struts1升级到Struts2,主要的变化包括: 1. **控制器组件**: Struts1使用ActionServlet作为控制器,而Struts2则使用Filter作为控制器,使得它更容易与其他过滤器一起工作,并更好地适应现代Web应用的架构。 2. **配置方式**: Struts1依赖XML配置文件,而Struts2允许使用注解和配置文件相结合的方式,更加灵活。 3. **Action设计**: Struts1中的Action类需要实现`execute()`方法,而Struts2的Action类可以自定义方法,每个方法对应一个操作。 Struts2在设计上更加先进,功能更加丰富,为开发者提供了更多的便利和选择,是Struts1的一个强大升级。
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 23
- 资源: 2万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)