1.Struts2概述:
- Struts2是一个用来开发MVC应用程序的框架。
- Struts2提供了web应用程序开发过程中一些常见问题的解决方案;
- 对用户输入的数据进行合法性验证
- 统一的布局
- 可扩展性
- 国际化和本地化
- 支持Ajax
- 表单的重复提交
- 文件的上传和下载
- ... ...
2.Struts2相对于Struts1的优势:
- 体系结构更优秀
- 类更少, 更高效:在Struts2中无需使用“ActionForm” 来封装请求参数
- 扩展更容易:Struts2通过拦截器完成了框架的大部分工作,在Struts2中插入一个拦截器相当简单
3.Struts2的本质:
- Struts2严格来说并非是从Struts1升级而来,而是换了品牌标签的webwork
- 从Struts1到Struts2的升级:
Struts1使用ActionServlet作为控制器 | Struts2使用过滤器作为控制器 |
Struts1中每一个HTML表单都对应一个ActionServlet实例 | Struts2中HTML表单直接被映射到一个POJO |
Struts1的验证逻辑编写在ActionServlet中 | Struts2的验证逻辑编写在Action中 |
Struts1中Action类必须继承org.apache.struts.action.Action类 | Struts2中任意一个POJO都可以是Action类 |
Struts1使用el和jstl | Struts2在页面中使用ognl来显示各种对象模型 |
4.Struts2环境搭建:
- 添加jar包:将jar包添加到应用程序的webContent下的WEB-INF/lib目录下
- 在当前应用程序的web.xml文件中配置Struts2
- 添加Struts2配置文件Struts2.xml到src目录的根目录下
- 关联Struts2的智能提示:
- 复制http://struts.apache.org/dtds/struts-2.5.dtd →proferences→xml→xml catalog→粘贴到key中→File System→struts-2.5.14.1\src\core\src\main\resources\struts-2.5.dtd
- 注意:Key Type必须选择URI
- 注意:在使用struts2.3以上版本时,如果启动服务器后出现404 NOT FOUND错误则删除掉lib目录下的struts2-rest-plugin-2.5.14.1.jar
5.使用strut2的优点:
- Filter的使用:不需要直接在Filter中编写代码,而是通过struts2的配置文件实现
- 取值:只需要使用${属性名}:${requestScope.product.productId }→${productId }
- 使用步骤:
- 在index.jsp页面跳转到/WEB-INF/pages/input.jsp
- 在input.jsp页面中跳转到Product类中的save方法,save返回一个"details",并通过Struts2的反射跳转到/WEB-INF/pages/details.jsp
- struts.xml配置文件:
6.详解: