Struts1 技能使用要点及要求

转自  http://blog.sina.com.cn/s/blog_9c10071301015qnl.html


Struts1 技能使用要点及要求

 

一、    配置文件

Struts框架在启动时会读取Struts配置文件,并根据其内容来创建各种组件对象。

下面就介绍一下Struts配置文件的几个组成部分。

1、< struts-config>元素

   该元素是Struts配置文件的根元素,其他所有配置元素必须在< struts-config>与< /struts-config>元素间进行配置。

    如:

    Struts1 <wbr>技能使用要点及要求


2、<form-beans>

   在该元素中可以包含多个<form-bean>子元素,每个<form-bean>子元素用来描述一个ActionForm Bean。通过<form-bean>将具体的ActionForm映射为一个逻辑名,在<action>元素中将使用这个逻辑名来引用相应的ActionForm。

    Struts1 <wbr>技能使用要点及要求


3、<action-mappings>元素

      在<action-mappings>元素中包含多个<action>元素,每个<action>元素对应用户的一个请求,通过在<action>元素中的属性设置来决定处理请求的Action类和需要用到的其他资源。

      下面列举几个<action>的属性:

      attribute 指定一个key值,在request或者Session范围内将通过该值存取<action>的name属性指向的ActionFrom,默认为name的属性值。

       path 用来指定一个路径,如果该属性值与用户提交的URL匹配,则Struts会根据当前的<action>元素配置进行操作。该值应以“/”开头。

       forward  指定转发的URL路径。

       input  指定一个当前表单验证失败时候,请求将转发至的路径。

       name   指定一个ActionForm,该值必须在<form-bean>元素中有过定义。

      parameter 指定一个参数值,可在Action类的execute()方法中通过ActionMapping对象的getParameter()方法获取。常见的应用有某一类继承了DispatchAction后,在用户请求的URL中将以该值指定的参数作为方法名,直接调用该类中对应的方法。

     scope 指定当前<action>元素中有name属性指定的ActionForm的存在范围。可选值有request和session,默认为session。

     Type 指定处理当前请求Action类的完整路径。

    参考配置:

    Struts1 <wbr>技能使用要点及要求


综上几个配置,一个简单的Struts配置基本完成。其他Struts配置元素可以阅读一些资料自行学习一下。例如,在<form-bean>中的<form-property>子元素、<global-forwards>全局转发或重定向元素等等。

关于Struts 配置的技能要求,首先要了解配置文件的结构和每个元素基本属性的含义,能够成功配置一个包含ActionForm,Action类,Forward,validate的基本流程,在开发过程中无因配置错误导致系统无法运行的问题。配置属性要正确使用,不做无效配置,属性的自定义值命名规范。

二、    ActionForm

ActionForm是Struts框架的核心组件之一,是Struts的关键视图组件。在我们声明一个ActionFrom Bean的时候,该类必须继承org.apache.struts.action.ActionForm类,自定义的ActionForm中可以灵活的添加想从页面表单中获取的用户信息为类属性,在用户发出提交表单请求后,处理该请求的Action类,将通过参数中的ActionForm拿到一个完整的表单信息。但是这个ActionFrom必须在Struts的配置文件中定义过,并且该Action对应的配置行中name属性指向的正是此ActionFrom的逻辑名。

例如:

    Struts1 <wbr>技能使用要点及要求


Struts 的配置:

Struts1 <wbr>技能使用要点及要求

一、    Action类

    Struts1 要求Action类集成一个抽象基类,在这里我们通常会看到两种继承,一种是继承org.apache.struts.action.Action,还有就是继承org.apache.struts.actions.DispatchAction类。

继承org.apache.struts.action.Action的子类,需在execute方法写入处理请求的代码,一般一个Action只能通过一个方法响应。这样就需要通过request.getParameter()方法来获取传入的值,来分辨用户请求,跳转到不同的页面。

而DispatchAction是对org.apache.struts.action.Action进行了功能扩充,DispatchAction本身也是继承自Action,DispatchAction进是把判断放到了Struts的配置文件中,如我们自己的类继承了DispatchAction,我们就可以在类中自定义若干方法,至于页面具体要指向那个方法来执行本次响应的判断我们可以通过在URL中添加一个parameter个属性值进行区分。

    例如:

    Struts1 <wbr>技能使用要点及要求


那么URL就应该是:/tutorv2/class.do?operation=classList

   除此之外,我们可以通过ActionMapping指定一个转发路径,例如:

    Struts1 <wbr>技能使用要点及要求


转发的地址,需要在该Action的配置中定义一个<forward>元素:

     Struts1 <wbr>技能使用要点及要求


下面我们看一段完整的Action业务:

   用户提交一个数据表单:

    Struts1 <wbr>技能使用要点及要求


用户请求一个数据列表:

    Struts1 <wbr>技能使用要点及要求


综以上所述,基本可以完成一个简单的Struts业务流程。这部分的技能要求是:能够在开发过程中熟练的配置和创建一个Action逻辑,根据用户的不同请求,正确使用Action返回响应结果,无基础问题异常,不做多余请求,不做多余转发或重定向,不做无用参数传递、尽量使逻辑清晰,代码简洁,参数和变量、方法命名规范。

除此之外,还需了解Struts标签库和Validator验证框架。这里列举几个Struts标签的使用。Struts 的Validator验证框架,也是需要大家熟练掌握的,但是由于目前平台开发过程中大部分验证都是通过js脚本或Jquery框架来实现,这里就不做详细描述。

四、Struts标签库

Struts标签库主要分为HTML标签库、Bean标签库、和Logic标签库。

Struts 中的HTML标签库 大部分标签与普通的HTMl元素相对应。

下面介绍几个主要的HTML标签库元素。

    1、<html:link> 实现超链接,锚点。

       例如:<html:link action=”/tutorv2/class.do?operation=classList”>班级列表</html:link>

   2、<html:form>用于生成Form表单,必须包含action属性,否则异常。

      例如:

        <html:from action=”/tutorv2/class.do?operation=saveClass” method=”post”>

        <html:text property=”className”/>

        <html:text property=”code”/>

        </html:form>

     这里虽然说到了Struts标签库的HTML 标签库,但是在实际的开发过程中,不明确要求使用。

Struts 中的Bean标签库

      Bean 标签库中的标签可以访问已经存在于JSP范围内的JavaBean,并且可以将一个JavaBean或其中的属性值定义为一个变量存放到指定的范围中供其他标签访问。常见的有<bean:page>、<bean:message>、<bean:write>等。

      Logic标签库

      此标签库中的标签可以实现特定的判断条件,逻辑处理等。我们开发过程中可能会经常用到的一些有:<logic:iterate>循环、<logic:equal>比值相等、<logic: notEqual >比值不等、<logic:empty>判断指定对象在request和session范围内是否为空、<logic:notEmpty>判断指定对象在request和session范围内是否不为空 等等。

以上简单列举了几个Struts 标签库的使用和说明,在开发过程中,要求能够熟练应用Struts标签库的Logic标签库元素,在Jsp页中能够灵活的使用标签进行判断或循环、输出,要注意Logic标签库输出页面元素时的非空判断。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值