Struts 2.0系列之一--Struts 2.0概述

来源:互联网 发布:实施国家大数据战略 编辑:程序博客网 时间:2024/04/25 20:14
Added by savaki, last edited by Ted Husted on Feb 12, 2007
Translated by 东中狂人 on Apr 14,2007

        Apache Struts 2来源于大家所熟悉的WebWork 2。它们在经历了几年的独立发展后,两个社区(WebWork社区和Struts社区)决定联手来共同打造Struts 2,这就是我们今天的Struts 2.0了。

 一、Struts 2 的平台要求:
    * Servlet API 2.4
    * JSP API 2.0
    * Java 5
更多的要求列表,包括可选插件的依赖性问题请点击这里。

二、Struts 2 框架简介
        整个执行的步骤大概如下:
        1.Web浏览器请求资源(比如/mypage.action, /reports/myreport.pdf等);
        2.过滤器(Filter Dispatcher)查看Web浏览器发来的请求并决定哪一个Action将被调用;
        3.拦截器(Interceptor)自动作用以请求之上,如工作流、校验以及文件上传的控制等;
        4.执行Action的方法,通常是存储或查询数据;
        5.将结果以HTML、图象、PDF或者是其它一些形式返回给Web浏览器。


三、Struts 2 标签简介
         Struts标签可以以最少的代码创造出丰富的Web应用。通常开发人员需要花费大量的努力在Web页面的大量代码上,然而Struts标签可以通过减少代码来减少开发人员的工作量。看看下面这段不带Struts标签的部分表单代码:
<% User user = ActionContext.getContext() %>
<form action="Profile_update.action" method="post">
 <table>
  <tr>
    <td> align="right"<label>First name:</label></td>
    <td><input type="text" name="user.firstname"
       value="<%=user.getFirstname() %> /></td>
  </tr>
  <tr>
   <td>
    <input type="radio" name="user.gender" value="0"     
      id="user.gender0"
     <% if (user.getGender()==0) { %>
     checked="checked" %> } %> />
     <label for="user.gender0">Female</label>
...
         不难想象,不使用框架的Java Web开发会是多么困难的一件事!然而上面的代码还只是实现了两个功能,还有六个功能尚未实现,下面让我们通过Struts标签来完成这个表单功能,代码如下:
<s:actionerror/>
<s:form action="Profile_update" validate="true">
 <s:textfield label="Username" name="username"/>
 <s:password label="Password" name="password"/>
 <s:password label="(Repeat) Password" name="password2"/>
 <s:textfield label="Full Name" name="fullName"/>
 <s:textfield label="From Address" name="fromAddress"/>
 <s:textfield label="Reply To Address" name="replyToAddress"/>
 <s:submit value="Save" name="Save"/>
 <s:submit action="Register_cancel" value="Cancel" name="Cancel"
   onclick="form.onsubmit=null"/>
</s:form>

         差不多是同样的代码量,第一段只实现了两个功能,而使用Struts标签后实现了一个完整的数据输入表单,不仅代码量变得更少了,而且代码也变得更容易读更容易控制。
        Struts标签同时还支持数据检验和本地化机制,这不仅使得代码量变得更少,也让Struts变得更实用。

四、Struts 2 配置简介
        Web应用通常通过配置文件来初始化过滤器和监听器等资源。而Web配置文件通常是XML文件格式的,并且命名为web.xml。通过在其中所作的声明,Struts不仅能够初始化它的资源,而且可以通过struts.xml这个文件来控制项目配置等。struts.xml包括action的映射,将输入定向于服务端的Action类,结果类型,以及选择输出页面等。
        下面是一个实现登录功能的典型配置文件struts.xml
<struts>
    <package name="default" extends="struts-default">

        <action name="Logon" class="mailreader2.Logon">
            <result name="input">/pages/Logon.jsp</result>
            <result name="cancel" type="redirect-action">Welcome</result>
            <result type="redirect-action">MainMenu</result>
            <result name="expired" type="chain">ChangePassword</result>
        </action>

        <action name="Logoff" class="mailreader2.Logoff">
            <result type="redirect-action">Welcome</result>
        </action>

    </package>
</struts>

      第一天的任务完成了(水平比较有限,希望志同道合的弟兄能一起探讨)
原创粉丝点击