Struts 2.0系列之一--Struts 2.0概述
2007-04-14 22:47
281 查看
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>
第一天的任务完成了
(水平比较有限,希望志同道合的弟兄能一起探讨)
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>
第一天的任务完成了
(水平比较有限,希望志同道合的弟兄能一起探讨)
相关文章推荐
- Struts 2.0系列之二--打造自己的第一个Struts 2.0程序
- 常用的Struts 2.0的标志(Tag)介绍(Struts 2.0系列之二)
- Struts 2.0的Action讲解(Struts 2.0系列之三)
- Struts 2.0系列
- Struts2.0 入门系列文章 —— 转载 —— 很好很强大 !
- 在Struts 2.0中国际化(i18n)您的应用程序(Struts 2.0系列之四)
- 【F#2.0系列】概述
- 转换器(Converter)——Struts 2.0中的魔术师(Struts 2.0系列之五)
- 【struts2系列教程之一】为Struts 2.0做好准备
- 在Struts 2.0中实现表单数据校验(Validation)(Struts 2.0系列之六)
- 学习Struts 2.0系列文章
- Struts 2.0系列文章
- Struts 2的基石——拦截器(Interceptor)(Struts 2.0系列之七)
- 在Struts 2中实现IoC (Struts 2.0系列之八)
- Struts2-2 Struts2.0概述与环境搭建
- Struts2+Spring4+Hibernate4整合系列--(一) 概述
- Struts 2.0系列
- 为Struts 2.0做好准备(Struts 2.0系列之一)
- 在Struts 2中实现文件上传(Struts 2.0系列之九)
- Struts 2.0→MaxOnJava系列