Struts1开发模式--总结大全
更新时间:2023-11-07 20:52:01 阅读量: 教育文库 文档下载
- struts1工作原理推荐度:
- 相关推荐
Struts1开发模式
1、MVC设计模式的回顾:
MVC设计模式中,先由客户发送HTTP请求,控制器Servlet会接收用户发送的所有请求,Servlet在调用javabean,并将显示结果通过JSP页面进行显示。
使用MVC设计模式,可以将Servlet、JSP、javabean进行很好的分离,自己管理自己的业务,适合多人开发,但是需要花费大量的设计时间,为了解决这种问题,就出现了已经成型的开发框架进行开发 2、Struts1 开发流程讲解
解析:struts1中,依然存在servlet(控制器),此时是ActionServlet,但是此时控制器struts-config.xml配置文件控制,而action就相当于MVC中一个个的servlet,由Action调用javabean完成一个个具体的操作业务,具体和MVC的不同看上面图。
Struts1比传统的MVC模式多了三个组件:标签库,ActionForm 和Action Struts1 和 MVC是什么关系?
MVC是标准,Struts1是实现。MVC就像一个接口,struts1实现了此接口
3、在struts1中提供了大量的标签库,最常用的是bean标签,html标签和logic标签 具体配置如下:
4、ActionServlet在如何进行启动个?在web.xnl中如何配置?
5、到底标准的Struts1 开发步骤流程是怎么样的呢?下面是完整的struts1的开发流程案例:掌握 (1)建工程
(2)导入jar包,将struts1的struts-1.3.10-all\\struts-1.3.10\\lib lib包下所有jar包全部导入并加载进来
并把struts1的核心标签库的struts-bean.tld、struts-html.tld、struts-logic.tld加载到WEB-INF目录下
(3)配置web.xml 启动struts1 并配置了struts标签库
xmlns:xsi=\ xsi:schemaLocation=\ http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd\>
(4)定义ActionForm(HelloForm) 主要是用于验证,封装属性参数与表单提交的参数名称一致,提供getter、setter方法,并提供validate( ) 验证方法,进行业务的验证, 方法validate( )返回的是一个ActionErrors对象,此时保存了全部的错误信息。在一个ActionErrors中可以增加多个ActionMessage,而ActionMessage类的构造方法中需要传递一个指定的错误信息的key,这些错误信息在ApplicationResource.properties文件中定义
import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; public class HelloForm extends ActionForm { 中
if (this.info == null || \.equals(this.info)) { private static final long serialVersionUID = 1L; // 封装提交的info参数 private String info; /**
* 验证输入的数据,validate返回的是ActionErrors对象 author:zhu */
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) { // 创建并实例化ActionErrors对象
ActionErrors errors = new ActionErrors();
// 判断当参数为空或者null时,增加一个错误信息info,这些错误信息最终返回到errors对象
}
}
}
errors.add(\, new ActionMessage(\));
return errors;
// 重置操作
public void reset(ActionMapping mapping, HttpServletRequest request) { }
public String getInfo() { }
public void setInfo(String info) { }
this.info = info; return info;
(5)定义HelloAction,主要执行具体的业务操作 ,接收ActionForm的对象,并接收表单属性参数 每一个Action都相当于一个Servlet,HelloAction要继承Action类,在ActionForm取得用户输入的参数,并将此参数放在request属性范围中,最后使用ActionMapping类中的findForward()方法进行跳转 用到的方法: execute() 执行具体的操作业务,接收ActionForm属性参数,返回ActionForward实例,具体的跳转路径在struts-config.xml中进行配置
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm; Import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.beirun.zhu.form.HelloForm; public class HelloAction extends Action { }
【定义错误页:ApplicationResource.properties 文件 ,定义内容是:error.info=信息不能为空】
(6)配置struts-config.xml文件
/**
* 执行具体的业务操作 ,接收ActionForm的对象,并接收表单属性参数,
* 并放置到request属性范围内,利用ActionMapping中的findForward方法跳转到制定页面 */
public ActionForward execute(ActionMapping mapping, ActionForm form, }
HttpServletRequest request, HttpServletResponse response) throws Exception {
HelloForm helloform = (HelloForm) form; String info = helloform.getInfo(); request.setAttribute(\, info); return mapping.findForward(\);
path=\scope=\
type=\>
总结:上面struts1开发中,首先导入了struts1开发中的所有开发jar包,然后启动了struts1,启动时候注意,映射路径uri是*.do ,一般情况下,以*.do 结尾的文件都是struts1开发的项目,并导入了struts1标签库,需要在web.xml中进行配置,然后定义了struts1的ActionForm,form主要是封装显示层的参数属性,并提供验证功能,验证通过后,会调用Action的execute方法进行具体业务的实现,处理完业务之后,处理结果会转发给Actionforward所指定的JSP页面,JSP页面生成动态网页返回给客户端进行动态的显示
核心配置文件struts-config.xml都代表什么?
:表示配置的每一个Action,此节点的属性如下。
? attribute、name :指定此Action要使用的ActionForm名称,此名称在
? scope:此Action的作用范围,有request和session两种设置 ? type:此Action对应的包.类名称
在节点中可以同时定义多个
正在阅读:
Struts1开发模式--总结大全11-07
截止使用说明书英文09-04
英语三年级上册unit 4 we love animals05-25
镇领导干部会前学法制度12-26
初中数学中考试题精华汇编-圆附答案03-08
出现口腔黏膜白斑应警惕癌变的出现05-29
(内部资料)爱立信指令大全(有注释,通俗易懂)(申精)03-08
物化习题 考研专用09-18
钳工、机修钳工、工具钳工、模具钳工等钳工类职业技能鉴定所(考场)设置标准(试行)05-22
三星i9268刷入recovery的教程07-29
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- Struts1
- 模式
- 总结
- 大全
- 开发
- SPCC-SECC-SGCC的差异性
- ArcGlobe优化文档
- 中国谜语复习大纲(整理版,含答案)
- 2017-2018学年人教版高中英语必修五学业分层测评(8)
- 金蝶题库
- 《计算机网络》(B)卷
- 实训项目六学生版
- SSAT考试如何注册?
- 2016春郑州大学《面向对象程序设计》第10章在线测试
- 2016-2021年中国纳米刀行业市场调查研究及投资潜力预测报告
- 探究关于影响内部审计质量因素分析的文献综述
- 资阳市2012—2013学年度高中二年级第一学期期末质量检测事故学理科卷
- 基于CPLD的电子密码锁设计本科毕业设计论文
- 管理学复习资料
- 2015年3月7日托福真题解析 - 图文
- 西南财经财务管理分章试题
- 免疫学(带参考答案)
- envi遥感图像处理之大气纠正
- 南通职业大学科研团队建设申请书 - 图文
- Linux应用基础模拟试题