Struts学习与一个简单的Struts实例

来源:互联网 发布:特种作业模拟考试软件 编辑:程序博客网 时间:2024/05/17 23:08

在Struts上我投入了很大的时间,一直到今天才可以用Struts1.x写出来一个简单helloWorld,

虽说不值一提,但也是自己的一份努力。

 

以前看了很多Struts些helloWorld的实例,但是对于里面的配置文件是在苦恼,一直到看了陈宝国老师的那个Struts实例,才明白我以前看的时候把Struts1与Struts2混到了一起,结果就老出问题。

 

今天就用Struts1.x来做一个简单的helloWorld实例

 

       Struts最主要的是一个配置文件:struts-config.xml

       这个配置文件比较复杂,可以从Struts的apps目录下copy一个出来,然后再做一下修改,

       我用的是apps下的struts-blank-1.3.10.war里面的一个struts-config.xml

           (struts-blank-1.3.10.war是Struts自带的一个空工程,里面东西可以直接用。)

在copy这个文件的时候可以顺便把位于WEB-INF下的web.xml和validation.xml一并copy过来

这些东西在以后都会用到,可以减少自己书写代码的数量。

 

第一步:建立表单login.jsp

      因为web.xml文件里面有一个<servlet-mapping>元素,里面定义了*.do的url-pattern,所以这里form中的Action要用一个longin.do的形式,即<form action="login.do">,表示这个表单在提交的时候要经过web.xml里面*.do的处理,有此找到一个<servlet>,这个<servlet>定义了一个action,这个action是Struts里面定义的一个servletAction,于是进入Struts流程,因为在这里初始化参数中定义了一个/WEB-INF/struts-config.xml,所以回去加载这个文件。

 

第二步:编写struts-config.xml

      定义 <form-beans>元素

      因为表单在提交之后会携带参数,而这些参数必须要保存到某个地方,而这某个地方就是一个ActionForm,所以,编写一个ActionForm类  

 

第三步:编写LoginForm类来保存表单数据

       对应表单中的数据字段,在这个form中提供保存这些字段的私有字段,然后提供get与set方法提供外部访问。

       当然这个form要想完成保存表单中数据的能力的话就必须继承Struts中的 一个类,叫ActionForm。

也可以重写这个类中的一个方法:validate方法以提供一些表单数据的验证。  

 

   转到第三步,写这个form-bean元素,给它起个名字,以便在Struts-config.xml中使用,同时给出这个名字的form-bean对应的form类的完整路径。如:

     <form-bean name="loginForm" type="com.web.myStruts.LoginForm"></form-bean>

 

第四步:关键的一部,Struts要控制页面的流转

        怎么控制呢?这就要用到Struts-config.xml里面的 <action-mappings>这个元素来控制了,它定义了一个action。而这个action也必须要自己写出,这个action也是Struts提供的一个类,它需要我们重写

 

第五步:编写LoginAction来处理action的页面流转

        同样要想控制Struts的页面流转必须重载Action类的execute方法

    execute方法的其中一个ActionForm参数保存页面的信息,我们可以把它提取出来做出相应验证,以便进一步利用,execute方法会返回一个ActionForward对象,这个对象可以找到配置文件中的<action-mappings>中定义的forward,forward根据返回的参数就可以控制页面流转

 

 

当然,整个过程必须添加Struts的支持,而我们没有必要添加Struts的所有jar文件,找到struts-blank-1.3.10.war,添加里面WEB-INF下的lib即可,它里面提供了Struts的所有必须jar支持。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击