随笔-40  评论-66  文章-0  trackbacks-0
Action类

用来访问业务逻辑类。当 ActionServlet 从容器接收到一个请求,它使用URI (或者路径
“path”) 来决定那个Action 将用来处理请求。一个 Action 可以校验输入,并且访问业务
层以从数据库或其他数据服务中检索信息。


ActionForm类

为校验输入或者使用输入来更新数据库, Action 需要知道什么值被提交上来。它并不是强
制每个Action 都要从请求中抓取这些值,而是由 ActionServlet 将输入绑定到JavaBean中。
输入 bean 就是Struts ActionForm 类的子类。ActionServlet 通过查找请求的路径可以决定使
用哪个ActionForm , Action 也是通过同样的方法选取的。ActionForm 扩展了
org.apache.struts.action.ActionForm 类

每个请求都必须以HTTP 响应进行应答。 通常,Struts Action 并不自行渲染响应信息,
而是将请求转发到其他资源,比如JSP 页面。Struts 提供一个ActionForward 类,用来将
一个页面的路径保存为逻辑名称。当完成业务逻辑后,Action 选择并向Servlet 返回一个
ActionForward。Servlet 然后使用保存在ActionForward 对象中的路径来调用页面完成响
应。

Struts 将这些细节都绑定在一个ActionMapping 对象中。每个ActionMapping 相对于一个
特定的路径。当某个路径被请求时,Servlet 就查询ActionMapping 对象。ActionMapping
对象告诉servlet,哪些个Action,ActionForm,和 ActionForward 将要被本次请求使用。
所有这些细节,关于Action, ActionForm, ActionForward, ActionMapping,以及其
它一些东西,都在struts-config.xml 文件中定义。 ActionServlet 在启动时读取这个配置文
件,并创建一个配置对象数据库



举个例子来说,
页面上如果有以下语句:
<html:form action="/hello.do">
当submit此form时,控制器从配置文件中找<action-mappings>下path="/hello" 的<action>元素
然后根据此action元素的type属性找要执行的action类文件
比如

<action-mappings>
    <action path="hello"
            type="cn.com.mylu.Hello"
            name="Hellofrom"
            ……
    </action>

其中 cn.com.mylu.Hellofrom 为ActionForm类javabean
           cn.com.mylu.Hello 为Action类

    <form-bean name="Hellofrom" type="cn.com.mylu.Hellofrom">
    </form-bean>


页面hello.do-----> action元素的path属性 ------> action元素的type属性----->Hello.java---->Hello.java中的execute方法
posted on 2006-12-06 16:25 Super·shen BLOG 阅读(348) 评论(0)  编辑  收藏 所属分类: JAVA技术

只有注册用户登录后才能发表评论。


网站导航: