Struts1开发模式--总结大全

更新时间:2023-11-07 20:52:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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标签 具体配置如下:

zhumingmei/struts/bean

/WEB-INF/struts-bean.tld

zhumingmei/struts/html

/WEB-INF/struts-html.tld

zhumingmei/struts/logic

/WEB-INF/struts-logic.tld

4、ActionServlet在如何进行启动个?在web.xnl中如何配置?

action

org.apache.struts.action.ActionServlet 0

action *.do

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\>

action

org.apache.struts.action.ActionServlet 0

action *.do

zhumingmei/struts/bean

/WEB-INF/struts-bean.tld

zhumingmei/struts/html

/WEB-INF/struts-html.tld

zhumingmei/struts/logic

/WEB-INF/struts-logic.tld

(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都代表什么?

:表示配置的每一个ActionForm,此节点中定义的name属性指定ActionForm的名称,type属性表示的是此ActionForm对应的包.类名称、

:表示配置的每一个Action,此节点的属性如下。

? attribute、name :指定此Action要使用的ActionForm名称,此名称在标签中配置。 ? input :表示当验证出错(ActionErrors不为空)时跳转的错误显示页面 ? path:此Action对应的路径,此时为hello.do

? scope:此Action的作用范围,有request和session两种设置 ? type:此Action对应的包.类名称

在节点中可以同时定义多个节点,每一个节点都表示一个映射的路转路径,通过ActionMapping类的findForward()方法返回的就是一个映射的路径。

本文来源:https://www.bwwdw.com/article/fb62.html

Top