struts1的运行原理,我们以一个简单的用户登录验证为例

我们以一个简单的用户登录验证功能来了解下struts的最基本的原理,下面我们先来看一个模拟的时序图

 

通过这个图例我们可以看出客户端和服务器在struts框架应用上交互的一个过程。这里的action类和actionForm类都是可以有多个的,或者说在实际开发中这些都是肯定有多个的,并且我们的form和action之间都有一定的对应关系,而总控制器ActionServlet实际上也是一个servlet,我们在web.xml文件中需要对其进行配置,建议初学者掌握手动开发struts的技巧,只有这样我们才能真正的理解并且的使用工具开发的过程中熟练的使用。

      struts-config.xml的配置详细信息请大家自行搜索struts-config.xml配置详解这个文档,我们结合这个文档完全可以手动进行配置。

  这里提供一个最简单的struts-config.xml文件的配置的案例,也是结合用户登录验证的。

  <struts-config>
    <!-- 这里配置文件的顺序也是不能出错的,这次手动先进行简单的配置 -->
    <form-beans>
        <!-- 这里的name属性可以自定义,一般使用所对应表单类的名字的首字母小写 。type属性写这个类的全路径 -->
        <form-bean name="userForm" type="com.zyp.forms.UserForm"></form-bean>
    </form-beans>
    <action-mappings>
        <!-- 这里的path属性配置这个小队长被访问的路径,相当于web.xml文件中的url-partten属性 -->
        <!-- name属性必须和form-bean中的name属性相同这样才能建立对应关系 type是类的全路径名称-->
        <action path="/login" name="userForm" type="com.zyp.actions.LoginAction">
            <!-- 可选属性,设置处理动作的跳转关系,在控制器做出判断后返回结果就进行跳转 -->
            <forward name="wel" path="/wel.jsp"></forward>
            <forward name="err" path="/err.jsp"></forward>
        </action>
    </action-mappings>
</struts-config>

     还有一点需要特别注意的是我们的表单类也就是actionForm中的属性名,如下:

private String userName;
    private String passWord;
    //其实通过反射机制只要下面的setXxx和getXxx方法中的名称和jsp页面控件的名称一致即可
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassWord() {
        return passWord;
    }
    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

      这里的属性名称不是必须和jsp页面上的控件的名字相同,但是一般我们都写作相同的。不过这里的set和get方法的名字必须是setXxx,Xxx表示jsp页面对应控件的名称的首字母字母大写,因为我们结合反射机制会发现在这两个方法当中是使用这种方式来进行匹配的

 

   相信在学习阶段手动的进行struts的配置和开发对我们今后的开发工作和修改等都会有很好的帮助的。

posted @ 2013-04-10 10:25  张宇鹏  阅读(1001)  评论(0编辑  收藏  举报