Struts2笔记
马占峰
微信:13231750121
首先下载struts-2.5.29 https://struts.apache.org/
如果使用的工具为idea时
1.先下载插件:点击文件->设置->插件->搜索插件Struts2 点击下载
2.创建项目:点击文件->新建项目->javaEE->将 web应用程序打勾,将struts2打勾,看下方 点击使用库->选择你刚刚下载的stauts2的jar包->点击下一步 完成
3:点击文件 项目结构 工件 右击可用元素下的 你的项目名称 之后 点击第一行 什么什么Root 点击应用 完成!!
4.找到web/WEB-INF/web.xml
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter>
将黄色区域删除即可!!!
5.如果报错 即在项目结构中 部署 Struts2添加到工件即可
正文:
比较传统的开发模式和框架开发的区别:
创建完成项目后 会有 Struts2.xml文件 以及 web.xml文件
在Struts2中编写代码
在上述代码片段中
Demo01为自取名称在多个package中不能相同
struts-default为拦截器
namespace 和 action中的name中的值 组合起来能访问本Action
例如:http://localhost:8089/MyProject02_war_exploded/A01.action
Class值为你编写的Action的路径
Result name值 为你要接受的返回值 然后要跳转的页面
----------------------------------------------------------------------
在web.xml中编写过滤器
接下来就是编写一个Action
一定要继承 ActionSupport
Struts2执行流程
总结来说就是
客户端发送请求->过滤器执行默认(自定义)拦截器->执行目标Action->得到一个返回值->适配Result中的name值 然后跳转页面
二
ActionContext是Action执行的上下文对象,在ActionContext中保存了Action执行所需要的对象,包括parameters,request,session,application等
向request中存入数据:
Request.setAttribute(String name,Object Value)
向session中存入数据:
Request.getSession().setAttribute(String name,Object Value)
或者
Session session=request.getSession();
Session.SetAttribute(String name,Object Value);
向application中存入数据
This.getServletContext().setAttribute(String name,Object Value)
通过ServletActionContext访问
由Struts2提供
重要!!!!!!!!!
Static HttpServletRequest getRequest();获取web应用的HttpServletRequest对象
Static HttpServletResponse getResponse();获取web应用的HttpServletResponse对象
Static ServletContext getServletContext();获取web应用的ServletContext对象
Static PageContext getPageContext();获取web应用的pageContext对象
例子!!!!!!!:获取到Request对象
HttpServletRequest request=ServletActionContext.getRequest();
总结就是 调用ServletActionContext静态方法调用getRequest来获取HttpServletRequest对象
Struts2的数据封装
一.属性驱动
1.在Avtion中提供属性(表单属性)的Set方法!
2.页面表达式方法 需要在Action中新创建表单属性对象 然后在页面JSP
中调用 且必须提供对象的get方法!例如:
模型驱动方式
1.Action类必须实现ModelDriven接口 并且要重写getModel()方法
这个方法返回的就是Action所使用的数据模型对象
例如:
拦截器的配置