strust 日记

2008.1.17

一、基于 Struts 的 JSP 文件三大特点:

1.没有任何 java 程序代码

2.使用了许多 Struts 的客户化标签,例如: <html:form> 和 <logic:present>

3.没有直接提供文本内容,取而代之的是 <bean:message> 标签。

 

二、Struts 客户化标签是联系视图组件和 Struts 框架中其他组件的纽带。这些标签可以访问或显示来自控制器和模型组件的数据。

 

三、简单介绍 Struts 的几个标签。

1.<html:errors> : 用于显示 struts 框架中其他组件产生的错误信息。 只要在 jsp 文件里敲入 <html:errors/> 即可输出其他组件产生的错误信息。

2. <html:form> : 用于创建 Html 表单,它能把 Html 表单的字段和 ActionForm Bean 的属性关联起来。

3.<html:text> : 该标签是 <html:form> 的子标签,用于创建 Html 表单的文本框。它和 ActionForm bean 的属性相关联。

      <html:form action="/HelloWorld.do" focus="userName" >

        <bean:message key="hello.jsp.prompt.person" />

        <html:text property="userName" size="16" maxlength="16" /><br> 

        <html:submit property="submit" value="Submite"/>

        <html:reset/>

       </html:form><br>

 

4.<bean:message> 用于输出本地化的文本内容 。 <bean:message key="hello.jsp.page.heading" />

5. <bean:write> 用于输出 javaBean 的属性值。

6.<logic:present> 用于判断某范围是否存指定的 javaBean

    <logic:present name="person"  scope="request">

       <h2> Hello <bean:write name="personbean" property="userName" /> </h2>

    </logic:present>

 四、用户数据的验证分为两种,表单验证和业务逻辑验证。

    1.业务逻辑验证:如果用户在表单输入的姓名为:"Monster",按照业务规则,我们不能和 Monster 打招呼, 因此产生逻辑错误。 

    2.表单验证:如果用户没有在表单姓名就提交表单,将产生表单验证错误。该类型的错误一般由 ActionForm bean 处理。

     public ActionErrors validate( ActionMapping mapping , HttpServerletRequest request ){

           ActionErrors errors = new ActionErrors();

           if( ( userName == null ) || ( userName.length() < 1 )  ){

                errors.add( "username" , new ActionMessage( "hello.no.username.error" ) );

            }

            return errors ;

      }

 

五、当用户提交了 Html 表单后,Struts 框架自动将表单的数据填充到 ActionForm Bean 中,然后根据配置调用 ActionForm Bean 的 Validate() 方法对数据进行验证。如果 validate()方法返回的 ActionErrors 对象为 null , 或者不包含任何 ActionMessage 对象,就表示没有错误,数据通过验证。否则就表示发生错误,Struts会把 ActionErrors 对象保存到 request 范围内,然后把请求转发到恰当的视图组件,视图组件通过 <html:errors> 标签把 request 范围内的 ActionErrors 对象中包含的错误消息显示出来,提示用户修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值