Struts1的使用

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

其实刚开始学习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的源代码,然后研究下就好了。

不知道你对servlet了解多少,你要是熟悉的话,struts1还是so easy!
我理解也不深,就简单的从我用的角度瞎说两句。感觉mvc的框架思想上用起来都大同小异,实现上可能差别大一些,但那和咱们也没多大关系。
struts1就是 mvc框架一种,在视图层(jsp)中你可以用struts1标签进行定义表达发送请求,同时也可以用struts1标签迭代显示后台传过来的数据。但struts1标签不太好稍逊struts2,不过你可以结合无敌超简单一会儿就能学会的el表达式。
struts1特有的就是表单的提交有个form,你可以通过form以对象提交,在后台的action中强制转化成你的实体。
完了写到这儿没话了,曾记得学的时候看那么厚一本书,现在就剩这点儿了O(∩_∩)O哈哈~