JAVA学习网首页 把生活查询网加入收藏 把JAVA学习网设为首页 联系方式
    Hi,JAVA学习
JAVA基础 设计模式 数据库 JavaBeans J2EE JavaDelphi 用户界面 综合文章  
struts-helloapp 学习小记
时间:22/04/2007
作者:网络
来源:网络
小提示点这里把文章加入您的收藏夹,方便下次查看
设置文章字体大小:[ ]

<html:errors>:用于显示Struts框架中其他组件产生的错误消息。

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

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

<bean:message>:用于输出本地化的文本内容,它的key属性指定消息key,和消息key匹配的文本内容来自于专门的Resource Bundle

<bean:write>:用于输出JavaBean的属性值。本例中,它用于输出personbean对象的userName属性值:<bean:write name="personbean" property="userName" />

<logic:present>标签用来判断JavaBean在特定的范围内是否存在,只有当JavaBean存在,才会执行标签主体中的内容。

 

控制器组件包括ActionServlet类和Action类。ActionServlet类是Struts框架自带的,它是整个Struts框架的控制枢纽,通常不需要扩展。Struts框架提供了可供扩展的Action类,它用来处理特定的HTTP请求。

 

当用户提交了HTML表单,Struts框架自动把表单数据组装到ActionForm Bean中。ActionForm Bean中的属性和HTML表单中的字段一一对应。接下来Struts框架会自动调用ActionForm Beanvalidate()方法进行表单验证。如果validate()方法返回的ActionErrors 对象为null,或者不包含任何ActionMessage对象,就表示没有错误,数据验证通过。如果ActionErrors中包含ActionMessage对象,就表示发生了验证错误,Struts框架会把ActionErrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过<html:errors>标签把request范围内的ActionErrors对象中包含的错误消息显示出来,提示用户修改错误。

 

Action类的工作机制:当ActionForm Bean被创建,并且表单验证顺利通过后, Struts框架就会调用Action类的execute()方法。execute()方法包含以下参数:

ActionMapping:包含了这个Action的配置信息,和struts-config.xml文件中的<action>元素对应。

ActionForm:包含了用户的表单数据,当Struts框架调用execute()方法时,ActionForm中的数据已经通过了表单验证。

HttpServletRequest:当前的HTTP请求对象

HttpServletResponse:当前的HTTP响应对象

Action类的execute()方法返回ActionForward对象,它包含了请求转发路径信息。

 

HelloAction类调用HttpServletRequestsetAttribute()方法,向hello.jsp传递PersonBean对象时,需要提供一个名为“personbean”的属性key

request.setAttribute("personbean",pb);

hello.jsp通过这个名为“personbean”的属性key来读取PersonBean对象:

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

 <h2>

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

 </h2>

</logic:present>

 

<action    path      = "/HelloWorld"       //指定请求访问Action的路径

          type      = "hello.HelloAction"  //指定Action的完整类名

          name     = "HelloForm"        //指定需要传递给ActionActionForm Bean

          scope     = "request"           //指定ActionForm Bean的存放范围

          validate   = "true"              //指定是否执行表单验证

          input     = "/hello.jsp">         //指定当表单验证失败时的转发路径

<forward name="SayHello" path="/hello.jsp" /> //定义了一个请求转发路径

</action>

本例中的<action>元素配置了HelloAction组件,对应的类为hello.HelloAction,请求访问路径为“HelloWorld”,当Action类被调用时,Struts框架应该把已经包含表单数据的HelloForm Bean传给它。HelloForm Bean存放在request范围内,并且在调用Action类之前,应该进行表单验证。如果表单验证失败,请求将被转发到接收用户输入的网页hello.jsp,让用户纠正错误。


上一篇:STRUTS中光标定位问题

下一篇:java开源项目研究 2. 开源的历史

  • Java Thread Programming 1.8.2 - Inter-thread Communication
  • AOP和Template模式
  • EnterpriseJavaBeansDistilled(8)
  • 自己写的一个JSP小游戏21点,记录一下
  • Java源码解读之util.ArrayList
  • 基于容器的用户安全管理系统和JMS(7)
  • java中动态执行一段代码
  • 关于基于XML描述的GUI应用的一些资源
  • JAVA的国际化机制(一 介绍)
  • JdonJive论坛系统完整分析(1)
  • JUnit和ant结合
  • Reuse the Component (上)
  • 文件格式设计
  • J2SE5.0新特性之自动装箱解箱
  • Servlet基本结构
  • 对于初学者学习Java语言的建议
  • webwork2在weblogic下和tomcat下的中文问题解决
  • j2me开发书本推荐。
  • 返回】 【顶部】 【关闭
    Copyright © 2005-2010 www.594k.com All Rights Reserved.
    版权所有:JAVA学习网 备案序号:皖ICP备06004238号