logo资料库

struts2笔记.doc

第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
资料共51页,剩余部分请下载后查看
1.struts2框架是对控制器优化的一个框架
2.核心必备jar包
3.struts2框架添加的步骤
4.完成数据提交的三种方式
4.1 域模型数据提交方式(散数据提交)
4.2 对象封装数据提交
4.3 ModelDriven(模型驱动)方式提交数据
5. 与Servlet API解耦的访问方式
6. 与Servlet API紧耦合的访问方式
7.struts.xml文件详解
7.1 package: 定义一个包,用来解决同名action的冲突。
7.2 action:定义action的名称,并导航
7.3 result:导航
7.4同一个包中action的跳转
7.5 跳不同包中的action
7.6 多个方法导航到同一个地址
7.7 Action配置中,配置项的默认值
8 struts2的Annotation(注解)
8.1 Struts2注解的作用
8.2 导包
8.3 Action注解常用元素
8.4 注解相关常量
9.Struts2约定(了解)
9.1 什么是约定
9.2       约定对Action的限制
9.2.1约定Action类名:
9.2.2 约定Action包名:
9.2.3通过Action的限制得到访问路径
9.2.44 通过Action的限制得到结果页面路径
9.验证框架
9.1添加验证框架的步骤
10.自定义类型转器
10.1自定义类型转换器
10.2 配置类型转换器
11.OGNL(Object Graph Navigation Language)
11.1 OGNL的作用
11.2 表达式语言
11.3类型转换
12.struts2的拦截器
12.1 struts2的框架结构图
12.2 Struts 2自带拦截器
12.3 Struts2核心接口和类
13.应用SH项目实例:小米商城
13.1 小类商城搭建的步骤
14.购物车实现步骤
1.创建封装数据的购物车对象Car
2.创建XmCarshopDao,包含
3. 创建XmCarshopDaoImpl
4. 创建XmCarshopBiz,包含
5.创建XmCarshopBizImpl
6.创建监听器
7.创建过滤器,实现前台和后台的访问权限过滤
8.创建ProductInfoAction
15.订单生成步骤
1.struts2 框架是对控制器优化的一 个框架 Struts 2 是一个 MVC 框架,以 WebWork 设计思想为核心,吸收了 Struts 1 的部分优点 在项目中添加框架,要到官网 http://struts.apache.org/development/2.x/ 下载最新发布的版本。其中的目录文件如下 apps:该文件夹下包含了 struts2 的示例应用,这些示例应用对于学习者是很 有用的资料。 docs:该文件夹包含了 struts2 的相关文档,包括 struts2 的快速入门, struts2 文档,以及 API 文档。 lib:包含了 struts2 框架的核心类库,以及 struts2 的第三方插件类库 src:该文件夹下包含了 struts2 框架的全部源代码。
2.核心必备 jar 包 3.struts2 框架添加的步骤 3.1 首先导入 jar 包 3.2 生成 struts.xml 配置文件 3.3 在 web.xml 文件中注册 struts2 框架,使用 filter 过滤器注册。 4.完成数据提交的三种方式 4.1 域模型数据提交方式(散数据提交) 在 action 中要有与表单元素相同名称的变量,一定要有该变量的 set() get() 方法,struts2 使用 set()get()方法去操作这些变量。在请求到达时,框架负 责接收数据并负责类型转换,程序员不用使用 request.getParameter("…")去 取数据。 index.jsp 页面

1.域模型数据提交

姓名:
密码:


DemoAction 类中 public class DemoAction extends ActionSupport {
private String uname; private String pwd; public static final Double PI=3.1415926; @Override public String execute() throws Exception { //1 不用设置编码 //2 接收数据 (自动吸入) System.out.println(uname+"--"+pwd); //3 //4 return "zar"; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } } struts.xml 配置文件中 main.jsp
4.2 对象封装数据提交 实体类中必须要有成员变量的 set()get()方法。在 action 中的成员变量不 用 new 对象。但一定要有 set()get()方法。struts2 框架在注入值的时候会 new 对象。在页面上表单中元素的 name 属性要使用对象.属性的方式命 名。 index.jsp 页面

2.对象封装数据提交

姓名:
年龄:
日期:
User 类 public class User { private String name; private int age; private Date date; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date;
} } UserAction 类 public class UserAction extends ActionSupport { private User u; @Override public String execute() throws Exception { System.out.println(u.getAge()+"---"+u.getName()+"---"+u.getDate()); return super.execute(); } public User getU() { return u; } public void setU(User u) { this.u = u; } } struts.xml 文件 main.jsp 4.3 ModelDriven(模型驱动)方式提交数据 注意:在实现 ModelDriven接口的时候指定接收数据的对象的类型,在类 中要手工 new 出该对象,在页面上直接使用对象的属性名称作为表单元素 的 name 属性。 index.jsp

3.ModelDriven 数据提交

姓名:
年龄:
日期:
ModelDrivenAction 类 public ModelDriven { class ModelDrivenAction extends ActionSupport implements User u=new User();//一定要 new 对象 @Override public String execute() throws Exception { System.out.println(u.getAge()+"---"+u.getName()+"---"+u.getDate()); return super.execute(); } @Override public User getModel() { return u; } } struts.xml main.jsp 5. 与 Servlet API 解耦的访问方式 必须实现相应的接口,使用系统配置好的对象赋给类中的自定义的成员变 量,完成解耦合访问。 public class ChangeDateAction extends ActionSupport implements SessionAware, RequestAware, ApplicationAware {
public Map session; public Map request; public Map application; private String uname; private String pwd; @Override public String execute() throws Exception { session.put("uname", uname); request.put("user", uname + "--" + pwd); return super.execute(); } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public void setRequest(Map request) { this.request = request; } @Override public void setSession(Map session) { this.session = session; } @Override public void setApplication(Map application) { this.application = application;//接收框架做好的全局对象 application } }
6. 与 Servlet API 紧耦合的访问方式 要获得原生的 ServletAPI 的对象,用来除了做数据封装转发外,还有其它的 需求,例如取出端口,取出地址…. public class HttpRequestSessionApplicationAction extends ActionSupport { private String uname; public HttpServletRequest request; public HttpServletResponse response; public HttpSession session; public ServletContext application; public HttpRequestSessionApplicationAction(){ request=ServletActionContext.getRequest(); session=request.getSession(); application=session.getServletContext(); response=ServletActionContext.getResponse(); } @Override public String execute() throws Exception { request.setAttribute("unamer",uname+"requst"); session.setAttribute("unames",uname+"session"); application.setAttribute("unamea",uname+"application"); return super.execute(); } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } }
分享到:
收藏