Struts2简介:
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
Struts 2 目录结构:
apps目录:Struts2示例应用程序 docs目录:Struts2指南、向导、API文档 lib目录:Struts 2的发行包及其依赖包 src目录:Struts 2项目源代码使用Struts 2 开发程序的基本步骤
--手动添加Struts支持
1.第一步:加载Struts2 类库,既是添加jar包
1. commons-logging-1.1.x.jar ASF出品的日志包,struts2使用这个日志包来支持JDK和Log4j的日志记录。
2. freemarker-2.3.x.jar 表现层框架,定义了struts2的可视组件主题,struts2的UI标签的模版,使用FreeMark编写 3. ognl-2.6.x.jar 对象图导航语言(Object Graphic Navigation Language),struts2框架通过其读写对象属性,一种功能强大的表达式语言 4. struts2-core-2.x.x.jar struts2的核心类库 5. xwork.jar webwork的核心库,struts2在其上构建 6. commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后必须加入此文件 7.struts2-dojo-plugin-2.3.4 为struts所提供的一些控件例如:日历2.第二步:配置web.xml
index.jsp struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /*
3.第三步:开发视图层页面login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>登录页面 登录页面
4.第四步:开发控制层com.struts包下或com.action包
package com.struts;/** * 控制层 * @author asus * */public class UserAction { /** * 此属性用来接收form表单提交过来的值,属性名与form表单中name属性名一致 * 必须生成get,set方法 */ private String uname; private String upassword; public String execute(){ if(uname!=null && uname.equals("admin") && upassword.equals("123")){ //进入则代表账号密码输入正确 return "success"; } return "error"; } /** JavaBean */ public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUpassword() { return upassword; } public void setUpassword(String upassword) { this.upassword = upassword; } }
5.第五步:配置Struts 2配置文件src下创建(struts.xml)需要选TDT struts-2.1.dtd
/loginSuccess.jsp /login.jsp
6.第六步:部署、运行项目
--自动添加Struts支持
--MyEclipse自动添加Struts 支持
右键项目-->MyEclipse-->Add Struts Capabilities
注意:Hibernate+Struts2时,若两个支持都是自动生成的则会有一个 antlr-2.7.2.jar 包冲突。必须去掉一个。一般是移掉Struts2的。
附加移除操作图:
使用对象接收from表的提交的值
属性设值的方式
(1):简单:在Action设置属性,生成SET与GET方法。参数的名称与属性的名称一致。
(2):Action中设置Bean的属性Bean必须生成SET、GET方法。Bean不可以实例化。
Bean中必须要有一个默认的空参数的构造方法。参数的名称 = bean的名称.bean中属性的名称。
Struts 2访问Servlet API
/** Struts 2访问Servlet API */ /**1.与Servlet API解耦的访问方式*/ //上下文对象 ActionContext context = ActionContext.getContext(); //request范围 Maprequest=(Map ) context.get("request"); request.put("num1", 1); //session范围 Map session = context.getSession(); session.put("num2", 2); //application范围 Map application = context.getApplication(); application.put("num3", 3); /** 2.与Servlet API耦合的访问方式*/ //request范围 HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("num1", 4); //session范围 HttpSession session = ServletActionContext.getRequest().getSession(); session.setAttribute("num2", 5); //application范围 ServletContext application = ServletActionContext.getServletContext(); application.setAttribute("num3", 6);