Struts1.X六个重要的概念

Struts(Struts1.x)六个重要的概念:
[六个类:ActionForm,ActionMapping,Action,ActionForward,ActionServlet/RequestProcessor]
  Struts应用中的其他大部分组件只是简单的提供一个基础架构,以便Action 对象可以做应用系统想要做的事情。如果应用需要保存一个记录到数据库,其流程可能是:
1.ActionForward 提供一个链接到输入页面
2.ActionForm 捕获输入用户提交数据
3.ActionMapping配置相应的Action.
4.Action中相应的方法将输入送到数据库。

a. ActionForm 类
********************************************************************************
Struts 框架 提供了ActionForm 类, 其主要功能有:
1. 从表单中接收用户提交的数据;
2. 对用户提交的数据进行验证;
3. 在需要时,回显示给表单(如输入验证失败时);
4. ActionForm 其实是具有一些标准方法来管理校验和修订的JavaBean。Struts 自动匹配 JavaBean 属性和HTML 表单控件的属性。
eg: public final class LoginForm extends ActionForm {
private String username = null;
public String getUsername() {return (this.username);}
public void setUsername(String username)
{this.username = username;}
}
5. ActionForm的基本配置
<form-beans> //Actionform的有关配置
<form-bean
name=“registerForm“ //Actionform的内部别名
type=“app.RegisterForm”/> //Actionform的类名
</form-beans>

b.ActionMappings
********************************************************************************
1.在Struts框架中,利用ActionMapping对象来将请求路径、ActionForm、Action,ActionForward关联起来。
2. 配置:
<action-mappings> //Action的有关配置
<action
path=“/register“ //客户的请求路径名--register.do
type="app.RegisterAction“ // Action的类名
name=“registerForm” //对应的Actionform的内部别名
input=“/register.jsp”> // Actionform来源的JSP文件名
<forward name=“success” path=“/success.html”/> //转发路径
<forward name="failure" path="/failure.html"/> //转发路径
</action>
</action-mappings>

c.Action 类
********************************************************************************
1. HTML 表单使用 action 参数来告诉浏览器将数据送到哪里? Struts 框架提供相应的 Action 类来接收数据。
2. 框架会自动创建、组装、校验和最后处理Action 对象对应的ActionForm。这样,Action 就可以直接从ActionForm bean取得它需要的数据。
eg:
public final class LogonAction extends Action {
public ActionForward execute(
ActionMapping mapping, ActionForm form,
HttpServletRequest request,HttpServletResponse response)
throws Exception
{
//1.从ActionForm对象中取得相应的输入参数
//2.将业务委托给相应的处理类
// 3.选择一个相应的转发路径
return mapping.findForward("continue");
}
}

d.ActionForward
********************************************************************************
1.这些对象都有个逻辑名称和一个path 属性。这使得开发人员可以设置path ,然后通过名 称来引用ActionForward。ActionForward 通常在一个XML文件中定义,这个配置文件在Struts启动时读.

2.基本配置
<forward
name="welcome " //逻辑名称
path=“/pages/index.jsp”/> //转发的资源名

e.ActionServlet/RequestProcessor
1. 客户请求匹配Action URI 样式的路径
2. 容器将请求传递给ActionServlet.
3. ActionServlet 查询路径的映射。
4. 如果映射标明了一个form bean,ActionServlet 看是否已经有一个实例,或者创建一个新的实例。
5. 如果 mapping 的 validate 属性设置为 true, 它将调用 form bean 的validate 方法。
6. 如果失败,Servlet 将控制转发到input 属性标明的路径,控制流终止。
7. 如果mapping 标明一个Action 类型,如果它已经存在或已经实例化,它将被重用。
8. Action的perform 或 execute 方法被调用,并传递一个实例化的form bean (或者 null)。
9. Action 返回一个ActionForward 给ActionServlet .
10. 如果ActionForward 指向另一个 Action URI,重新开始;否则,显示页面或者其他资源, 流程结束。通常,结果是一个JSP页面。
11. 如果JSP 使用Struts HTML 标记, 并且在请求中看到正确的ActionForm ,他们会从 ActionForm中组装HTML控件。否则, <html:form> 标记将创建一个ActionForm 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值