struts配置与详解

来源:互联网 发布:软件功能性能 编辑:程序博客网 时间:2024/06/08 15:49

 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 技术的优点;
 三)工作流程:
   <struts-config.xml>
            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的图形化编辑器>:《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》中配置<action-mappings>下的<action>

                     <action path="/nsrkp"
                             parameter="flag"
                             attribute="fptjForm"
                             name="fptjForm"
                             scope="request"
                             type="org.springframework.web.struts.DelegatingActionProxy"
   >

        path="/Action逻辑名" //与<form 的action名一致,为了同名查找action,开始Struts动作(交谈)处理请求;
         name="ActionForm逻辑名" //必须与某个<form-bean name="逻辑名" 一致。用于找到ActionForm类,生成对象,封装前台Form数  据;
        ③配《struts-config.xml》中 <form-bean name="" type="" >

          <form-bean 标签 name="ActionForm逻辑名"  type="包名.ActionForm类名" />
        ---属性封装Form元素数据和validate()方法可执行格式验证;


       ④配《struts-config.xml》中 <  attribute="key名"
        //ActionForm对象存放在scope中的key名,一般与ActionForm的逻辑名相同;

       ⑤。。。。。。。。。。。。。。。scope="request|session";(只有两个scope)
       ⑥建立ActionForm类;
        (1)在src下:建包名路径:com.hj.struts.form
        (2)写类 extends AcionForm //抽象类
        (3)写全局属性,设置为私有private:
        (4)重写validate()方法(根据项目需求)
          内容:格式验证逻辑,
          返回值情况:返回的ActionErrors为null时或者为空时,表示格式验证成功;
                含ActionError|ActionMessage对象时,表示格式验证失败;
                失败去<action input="报错页的url">

         (5)Action中重写reset()方法
          this.属性名=null;//设置属性为初始化值;
         //功能:属性重置为null,用于恢复ActionForm前台Bean的属性为缺省值,以便属性封装新的数据;

         (6)配《struts-config.xml》中<  validate="false|true" //ActionForm对象中,validate()方法是否执行;

         (7)配《struts-config.xml》中<  input="失败报错页url";
        
         (8)。。。。。。。。。。。。。<  type="包名.Action类名"---ActionForm对象中validate()方法验证成功后,所去Action类。

         (9)写Action类
          (1)new class
          (2) extends Action
          (3)重写execute()方法, 如果是自己写的方法,必须要继承DispatchAction类
          (4)书写各种业务功能:
           //技术点1:接收前台Form数据
            LoginForm lf=(LoginForm)form;(或者利用request.getParameter("name")来或者前台的数据)
            String username = lf.getUsername();
            String password = lf.getPassword();
            System.out.println(username);
            System.out.println(password);
          5)Action结束转发动作:
           需返回一个ActionForward对象,以确定下一步转发目标;
            //ActionForward对象生成方式1:
          
  )
            //通过配置对象找到struts-config.xml中配置的forward标签信息,
                       //从而获得转发目标URL
       ⑾伴随添加配 《struts-config.xml》中<forward name="转发逻辑名" path="目标页url" />
            一条该Tag配置,会自动生成一个ActionForward配置对象,并被放入ActionMapping中,且传给Action,以便在所属Action中使用;

        ⑿写结果页;
             配合目标页url