- 热门文章:
- · 使用ConnectionManager适应多数据库的应用环境
- · STRUTS中光标定位问题
- · java基础问题请教!
- · XML-RPC 之 Apache XML-RPC 实例
- · jUDDI 简单安装使用
- · A problem when connect MSSQL with transaction.
- · Struts中的Action类的工作机制
- · Eclipse手记(小弟发现最实用的资料之一)
- · 如何提高自己的编程水平
- · Sun 总裁专稿:信息技术将步电力业后尘
- · Portal开源实现-Liferay的Portlet Session处理(2)
- · Portal开源实现-Liferay的Portlet Session处理(1)
上一篇:TIJ阅读笔记(第十二章) >>
struts-helloapp 学习小记
<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 Bean的validate()方法进行表单验证。如果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类调用HttpServletRequest的setAttribute()方法,向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" //指定需要传递给Action的ActionForm 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,让用户纠正错误。
相关文章:
- · 涂鸦软件游戏开发者采访实录
- · 腾迅游戏开发人员采访实录
- · 对于不同级别classloader define的类的问题处理
- · 扬扬的J2EE学习笔记(一)概述
- · 学习JFreeChart(一)
- · MIDP1.0中实现三角形的填充
- · [Eclipse笔记]Eclipse真的是商用IDE的杀手吗?
- · 的确不错的iBATIS SQL Maps
- · struts超简单入门(三)
- · struts超简单入门(二)
- · JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(4)
- · JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(3)
- · JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(2)
- · Spring Framework 1.2 RC1 发布
- · JBuilder2005+JBoss-4.0.2RC1+J2SDK1.5+Log4j 开发Session Bean例解(1)
- · 最终还是手工输出XML对象可靠
- · 选择jsp而不是servlet作为BS前台主流方案是JAVA的战略性方向错误
- · java开源项目研究 1. 引子
- · Tomcat集群的三种负载均衡方式优缺点对照。
- · 初探Eclipse结合Lomboz开发EJB-Eclipse环境搭建
- · TIJ阅读笔记(第十一章)
- · 关于Java的一些 工具,类库,框架......
- · 今天总算看完了log4j,心情不错!把自己的学习笔记拿出来给大家共享一把
- · Annotations中文翻译
- · 使用dao.Processor管理数据持久化对象
- · 在Unix/Linux上令(java)JVM支持中文输出
- · 简单的Oracle存储过程的创建方法(菜鸟级)
- · 利用游标返回结果集的的例子(Oracle 存储过程)
- · 《Java极限编程》(Java Tool for Extreme Programming)读书笔记 (4)
- · linux环境下Apache+Resin的配置
- · 实战 Eclipse ,Jigloo, PostgreSQL,JDBC 开发数据库查询应用系统起步
- · 使用request传递数据
- · 在nanowar中引入AOP
- · 格式化输入日期时间控件 JieFormattedDateBox
- · webshpere studio application developer 中 jndi 访问DATASOURCE DB.7.2
- · Jmeter使用之脚本录制回放
- · jad文件的错误代码,分享
- · 最安全的加密算法 (摘自温少的blog)
