iteye_4549 2010-11-24 20:42
浏览 154
已采纳

Struts1的使用

Struts1的使用 对于struts1的使用还不是很清楚,请给位高手给我讲解下。O(∩_∩)O谢谢

  • 写回答

2条回答 默认 最新

  • xiaoyuebata 2010-11-25 13:17
    关注

    其实刚开始学习struts1.X的时候就开始接触到配置文件了,配置文件的书写是非常重要的,你如果对自己写的配置文件了解深刻的话,整个程序的流程也就清晰了,因为配置文件是一个请求到应答的一个映射,这里我跟你简单的easystruts1.0的开发步骤吧
    包结构可以是:1>config 2>controller 3>form
    概要设计:
    1>设计相应的接口和抽象类,比如Action,ActionForm
    2>写一个用digester来解析的规则文件,rule.xml
    3>根据需求设计核心配置文件easystruts-config.xml
    4>根据配置文件(也就是一棵树模型),将树中的每一类节点设计为相应的JavaBean,
    bean中的成员变量就是在XML文件中该Bean的子节点,如果同类型子节点的个数大于1则用
    Map存放
    5>(重点)编写一个可复用的核心控制器,ActionServlet
    6>根据具体的业务利用编写好的easystruts来实现业务逻辑

    使用easystruts1.X开发的步骤:
    (1)xml文件的解析:
    使用digester解析xml文件:
    基本原理:
    digester读取xml文件,将其解析成一棵数,存放到内存.树中的每一个节点对应xml中的一个元素,程序只需要
    访问该树中节点的属性,就可以获得xml文件中的相关信息了.
    如何解析:
    step1:导入digester相关的jar包
    step2:依据要解析的配置文件,定义相关的配置类(配置文件中的xml元素一般会有对应的java类)
    step3:定义解析的规则文件(digester会依据该文件来解析,实际上,该规则文件定义了xml元素与java类的映射关系)
    step4:调用digester的api包去解析.解析的结果是一棵树(即多个配置类的实例)
    (2)实现一个可复用的controller
    (3)如何使用easystruts1.0去开发
    step1:导入easystruts1.0.jar及相关的jar
    step2:在web.xml中,配置ActionServlet

    ActionServlet
    com.easystruts.controller.ActionServlet

        <servlet-mapping>
            <servlet-name>ActionServlet</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
        step3:编写model和view
            写一个action,继承Action类,实现业务逻辑
            一般来说,最好将业务逻辑写在一个java类里,然后action去调用,原因是,java类可以方便去测试,如果是action,
            不方便测试(因为其execute方法带有HttpServletRequest,HttpServletResponse参数)要启动服务器才能
            去测试.
        step4:在easystruts-config.xml中进行配置.
            <action-mappings>
                <action path="/doOne" type="actions.DoOneAction">
                    <forward name="success" path="/one.jsp" redirect="false"/>
                </action>
            </action-mappings>
    

    总结:
    上面只是简单的介绍了下开发easystruts1.X和使用的步骤,也可以用它来实现国际化以及表单数据的缓存,具体的实现你可以去apache官网下载struts1.X的源代码,然后研究下就好了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度