Struts2框架详解:set标签与应用优势

需积分: 0 0 下载量 86 浏览量 更新于2024-08-17 收藏 1.73MB PPT 举报
"本文主要介绍了Struts2框架中的set标签及其使用方法,以及Struts2框架的优势和特性。" 在Struts2框架中,`set`标签是一个非常实用的标签,用于将某个值放入指定的作用域(scope)中。通过`set`标签,开发者可以方便地管理页面状态和数据传递。其主要属性包括: 1. `var`: 这个属性定义了变量的名字,相当于`name`和`id`,如果设置了`var`,那么`name`和`id`将不再使用。例如,`<s:set value="#request.username" var="xxx" scope="request" />`在这里,`xxx`是变量名。 2. `scope`: 定义了变量的生命周期和作用范围,可以设置为`application`、`session`、`request`、`page`或`action`。若不指定,变量默认会放在`action`范围内。不同的作用域决定了变量的可见性和存活时间。 3. `value`: 用于给变量赋值。如果未设置`value`属性,`set`标签会取`ValueStack`栈顶的值作为变量的值。例如,`<s:property value="#request.xxx" />`将展示`request`作用域内名为`xxx`的变量值。 下面通过几个例子来进一步理解`set`标签的用法: - 当`scope`设为`request`时,如`<s:set value="#request.username" var="xxx" scope="request" />`,变量`xxx`在`request`作用域内可用,可以通过`<s:property value="#request.xxx" />`访问。 - 如果`scope`设为`page`,如`<s:set value="#request.username" var="xxx" scope="page" />`,变量`xxx`则只在当前页面有效,可以使用`<s:property value="#attr.xxx" />`获取。 - 若未指定`scope`,如`<s:set value="#request.username" var="xxx" />`,变量`xxx`默认在`action`作用域,可以直接通过`<s:property value="xxx" />`获取。 Struts2框架概述: Struts2是一个流行的MVC(模型-视图-控制器)框架,用于构建Web应用程序。它提供了一系列解决开发过程中常见问题的工具,如页面导航、输入验证、统一布局、可扩展性、国际化和本地化支持、Ajax功能以及防止表单重复提交等。 Struts2的优势: - **无侵入式设计**:与Struts1相比,Struts2的设计减少了对ServletAPI和StrutsAPI的依赖,使得应用更加独立。 - **拦截器**:Struts2引入了拦截器机制,支持AOP(面向切面编程),便于实现如权限控制等功能。 - **类型转换器**:内置的类型转换器简化了特殊请求参数的转换,无需深入Struts1的底层实现。 - **多样化的视图技术**:支持JSP、FreeMarker、Velocity等多种视图技术,提供更大的灵活性。 - **输入验证**:提供了方法级别的验证,改善了Struts1的验证机制,并支持全局和局部的国际化资源文件管理。 从Struts1迁移到Struts2: 尽管两者名字相似,但Struts2并非基于Struts1的扩展,而是基于WebWork发展起来的。升级过程中,开发者需要注意Struts2的核心机制和设计原则与Struts1有很大的不同,如使用拦截器和无侵入式设计等。