作者:zhoujielcl_767 | 来源:互联网 | 2023-09-17 13:32
struct简单介绍:(1)Struts就是符合JSPModel2开发规范的MVC的Web开发框架(2)基于MVC开发开发规范的web框架MVC分层开发模式的优点&
struct简单介绍:
(1)Struts就是符合JSP Model2开发规范的MVC的Web开发框架
(2)基于MVC开发开发规范的web框架
MVC分层开发模式的优点:
(1)代码可重用
(2)实现层间的的松耦合
(3)每一层各自独立,自包含,彼此间耦合度低
优点:易于管理,灵活配置,方便修改
缺点:交互点少,交互集中,有时感觉交互不方便
实现:强隔绝,将交互点减少并集中,并且使用接口技术处理需要发生的耦合(关键字:接口) 强耦合的不易于修改,但是有些地方也需要,管理学就需要 ,层间松耦合可实现数据与现实逻辑,与业务逻辑间彼此隔离。
框架:
(1) 项目开发的高阶工具 (本质)
(2) 提供了预备的软件架构和相关软件包
优点:
(1) 集中更多精力于软件开发;
(2 定制很多重复部分,避免出错,易于维护;
(3 规范化了开发流程,大大加快维护修改速度,简化维护过程,提高效率,缩短周期。
一)struts框架:
作用:用户表单 前台数据的封装 参数的传递 参数接受 web动作(转 定 包) 结果数据的显示
二)特点:
1) Apache组织的一个开源项目:Jakarta-Struts ;
2) 基于MVC设计模式,有MVC所有优点;
3) 符合SUN JSP Model2 开发规范;
4) 重型、可扩展Web框架;
5) 可综合利用 Servlet | JSP 技术的优点;
三)工作流程:
JSP------------ActionForm------------Action---------BO---------DAO----------PO.............DB
四)操作步骤:
动作I)[Web项目上 添加Struts Capabilities]
方案一:MyEclipce的插件添加
①项目名--右key--Myeclipse---Add struts capabilities
维护升级---struct1.1---1.2----tomcat安装目录----webINF----lib----把里面的jar包替换成1.2的就行了
方案二:手工添加
①src下,新开一个包名路径:
②在com.hj.struts下建立一个ApplicationResources.properties;
③Install struts jar 包:直接到camcat安装目录---webINF---lib---里copy到WEN-INF\lib下;
④建struts-config.xml:法2)。。。。。。。--new xml(basic templates)-----from a DTD File---XML Catalog Entry---Apache DTD Struts Config 1.2---ok
⑤从jar包中获得validator-rules.xml 并copy到WEB-INF下;
⑥从jar包中获得struts的标签库:六大.tld文件放入WEB-INF下;
注意:1.1是6个tld文件;1.2是5个tld文件;//少templates库;
⑦配web.xml:
法二)使用《web.xml》的design工具,配置Servlet、Init-Param(config、debug: 3,自动出load-on-startup:0、detail:3)
动作II)Web项目上 添加Struts组件
核心三组件: 【JSP】、 【ActionForm】、 【Action】
[创建组件的三种方法]:
法Ⅰ) 项目名---右key---new---other---MyEclipse---web struts---struts1.1/1.2---九项---Action、Form、Form and Action & JSP、...、Message Resources等
法Ⅱ) :《struts-config.xml》---design---new
各自组件独立创建
(一)创建JSP组件
方案一) 用常规JSP标签
(1)建JSP页: 选Template模板---“Default JSP Template”
(2) 添加Form:打开snippets工具:
注意:Form元素属性key名将要和 ActionForm中的属性名 一致
(3)添加Form中的action=..目标url
action="/Web项目名/Action动作逻辑名.do"
方案二):使用struts标签的JSP
(1)建JSP页:选Template模板:
“Standard JSP using Struts 1.2” 1.1(自动添加的模板)
(2)添加Form: 使用snippets工具添加:(在Html templates---双击 input form template)
(3)添加Form中的action=..目标urlaction= " /Action动作逻辑名"
Struts标签需先在server上运行,解析为普通的html以后,再去IE执行,未配置后台时,页面会报错。
(二)配置《Struts-config.xml》
①jsp
②配《struts-config.xml》中配置下的
parameter="flag"
attribute="fptjForm"
name="fptjForm"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy"
>
path="/Action逻辑名" //与 name="ActionForm逻辑名" //必须与某个 ③配《struts-config.xml》中
---属性封装Form元素数据和validate()方法可执行格式验证;
④配《struts-config.xml》中 < attribute&#61;"key名"
//ActionForm对象存放在scope中的key名&#xff0c;一般与ActionForm的逻辑名相同&#xff1b;
⑤。。。。。。。。。。。。。。。scope&#61;"request|session";(只有两个scope)
⑥建立ActionForm类&#xff1b;
(1)在src下&#xff1a;建包名路径&#xff1a;com.hj.struts.form
(2)写类 extends AcionForm //抽象类
(3)写全局属性,设置为私有private&#xff1a;
(4)重写validate()方法(根据项目需求)
内容&#xff1a;格式验证逻辑,
返回值情况&#xff1a;返回的ActionErrors为null时或者为空时&#xff0c;表示格式验证成功&#xff1b;
含ActionError|ActionMessage对象时&#xff0c;表示格式验证失败&#xff1b;
失败去
(5)Action中重写reset()方法
this.属性名&#61;null;//设置属性为初始化值&#xff1b;
//功能&#xff1a;属性重置为null&#xff0c;用于恢复ActionForm前台Bean的属性为缺省值&#xff0c;以便属性封装新的数据&#xff1b;
(6)配《struts-config.xml》中< validate&#61;"false|true" //ActionForm对象中&#xff0c;validate()方法是否执行&#xff1b;
(7)配《struts-config.xml》中< input&#61;"失败报错页url";
(8)。。。。。。。。。。。。。< type&#61;"包名.Action类名"---ActionForm对象中validate()方法验证成功后&#xff0c;所去Action类。
(9)写Action类
(1)new class
(2) extends Action
(3)重写execute()方法, 如果是自己写的方法&#xff0c;必须要继承DispatchAction类
(4)书写各种业务功能&#xff1a;
//技术点1&#xff1a;接收前台Form数据
LoginForm lf&#61;(LoginForm)form;(或者利用request.getParameter("name")来或者前台的数据)
String username &#61; lf.getUsername();
String password &#61; lf.getPassword();
System.out.println(username);
System.out.println(password);
5)Action结束转发动作&#xff1a;
需返回一个ActionForward对象&#xff0c;以确定下一步转发目标&#xff1b;
//ActionForward对象生成方式1&#xff1a;
)
//通过配置对象找到struts-config.xml中配置的forward标签信息&#xff0c;
//从而获得转发目标URL
⑾伴随添加配 《struts-config.xml》中
一条该Tag配置&#xff0c;会自动生成一个ActionForward配置对象&#xff0c;并被放入ActionMapping中&#xff0c;且传给Action&#xff0c;以便在所属Action中使用&#xff1b;
⑿写结果页&#xff1b;
配合目标页url