- 浏览: 138585 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
酱油男js:
不错...学习了。
oracle sql 优化大全 -
浪子秋水:
网页编码就是那点事 -
shenghuorulan:
通俗易懂。好文章,直接想到的问题都提到了。
oracle 全文检索实践 -
飞儿9530:
lucene 3.0.1 学习
本文转至 BLOGJAVA 的帖子 感觉对我这种 struts2 的初学者帮助很大
转载地址:http://www.blogjava.net/nokiaguy/archive/2008/04/15/193229.html
在本系列教程中我们将学习到 Struts2的各种技术。在本教程中使用的工具和程序库的版本如下:
开发工具: MyEclipse6
Web服务器: Tomcat6
Struts版本: Struts2.0.11.1
JDK版本: JDK1.5.0_12
J2EE版本: Java EE5.0
在本系列教程中
Web工程的上下文路径都是
struts2,如果在
Web根目录有一个
index.jsp文件,则访问路径如下:
http://localhost:8080/struts2/index.jsp
由于 MyEclipse6目前并不支持 Struts2,所以我们需要到 struts.apache.org去下载 Struts2安装包。要想正常使用 Struts2,至少需要如下五个包(可能会因为 Struts2的版本不同,包名略有差异,但包名的前半部是一样的)。
struts2-core-2.0.11.1.jar
xwork-2.0.4.jar
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
Struts2虽然在大版本号上是第二个版本,但基本上在配置和使用上已经完全颠覆了 Struts1.x的方式(当然, Struts2仍然是基于 MVC模式的,也是动作驱动的,可能这是唯一没变的东西)。 Struts2实际上是在 Webwork基础上构建起来的 MVC框架。我们从 Struts2的源代码中可以看到,有很多都是直接使用的 xwork(Webwork的核心技术 )的包。既然从技术上来说 Struts2是全新的框架,那么就让我们来学习一下这个新的框架的使用方法。
如果大家使用过 Struts1.x,应该对建立基于 Struts1.x的 Web程序的基本步骤非常清楚。让我们先来回顾一下建立基于 Struts1.x的 Web程序的基本步骤。
1. 安装 Struts。由于 Struts的入口点是 ActionServlet,所以得在 web.xml中配置一下这个 Servlet。
2. 编写 Action类(一般从 org.apache.struts.action.Action类继承)。
3. 编写 ActionForm类(一般从 org.apache.struts.action.ActionForm类继承),这一步不是必须的,如果要接收客户端提交的数据,需要执行这一步。
4. 在 struts-config.xml文件中配置 Action和 ActionForm。
5. 如果要 采集用户录入的数据,一般需要编写若干 JSP页面,并通过这些 JSP页面中的 form将数据提交给 Action。
下面我们就按着编写
struts1.x程序的
这五步和
struts2.x程序的编写过程一一对应,看看它们谁更“酷”。下面我们来编写一个基于
Struts2的
Web程序。这个程序的功能是让用户录入两个整数,并提交给一个
Struts Action,并计算这两个数的代数和,如果代码和为非负数,则跳转到
positive.jsp页面,否则跳转到
negative.jsp页面。
【第 1 步】 安装 Struts2
这一步对于 Struts1.x和 Struts2都是必须的,只是安装的方法不同。 Struts1的入口点是一个 Servlet,而 Struts2的入口点是一个过滤器 (Filter)。因此, Struts2要按过滤器的方式配置。下面是在 web.xml中配置 Struts2的代码:
< filter-name > struts2 </ filter-name >
< filter-class >
org.apache.struts2.dispatcher.FilterDispatcher
</ filter-class >
</ filter >
< filter-mapping >
< filter-name > struts2 </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
【第 2 步】 编写 Action类
这一步和
Struts1.x
也必须进行。只是
Struts1.x
中的动作类必须从
Action
类中继承,而
Struts2.x
的动作类需要从
com.opensymphony.xwork2.ActionSupport
类继承。下面是计算两个整数代码和的
Action
类,代码如下:
import com.opensymphony.xwork2.ActionSupport;
public class FirstAction extends ActionSupport
{
private int operand1;
private int operand2;
public String execute() throws Exception
{
if (getSum() >= 0 ) // 如果代码数和是非负整数,跳到positive.jsp页面
{
return " positive " ;
}
else // 如果代码数和是负整数,跳到negative.jsp页面
{
return " negative " ;
}
}
public int getOperand1()
{
return operand1;
}
public void setOperand1( int operand1)
{
System.out.println(operand1);
this .operand1 = operand1;
}
public int getOperand2()
{
return operand2;
}
public void setOperand2( int operand2)
{
System.out.println(operand2);
this .operand2 = operand2;
}
public int getSum()
{
return operand1 + operand2; // 计算两个整数的代码数和
}
}
从上面的代码可以看出,动作类的一个特征就是要覆盖 execute方法,只是 Struts2的 execute方法没有参数了,而 Struts1.x的 execute方法有四个参数。而且 execute方法的返回值也不同的。 Struts2只返回一个 String,用于表述执行结果(就是一个标志)。上面代码的其他部分将在下面讲解。
【第 3 步】 编写 ActionForm类
在本例中当然需要使用 ActionForm了。在 Struts1.x中,必须要单独建立一个 ActionForm类(或是定义一个动作 Form),而在 Struts2中 ActionForm和 Action已经二合一了。从第二步的代码可以看出,后面的部分就是应该写在 ActionForm类中的内容。所以在第 2步,本例的 ActionForm类已经编写完成(就是 Action类的后半部分)。
【第 4 步】 配置 Action类
这一步
struts1.x
和
struts2.x
都是必须的,只是在
struts1.x
中的配置文件一般叫
struts-config.xml
(当然也可以是其他的文件名),而且一般放到
WEB-INF
目录中。而在
struts2.x
中的配置文件一般为
struts.xml
,放到
WEB-INF"classes
目录中。下面是在
struts.xml
中配置动作类的代码:
<! DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd" >
< struts >
< package name ="struts2" namespace ="/mystruts"
extends ="struts-default" >
< action name ="sum" class ="action.FirstAction" >
< result name ="positive" > /positive.jsp </ result >
< result name ="negative" > /negative.jsp </ result >
</ action >
</ package >
</ struts >
在 <struts>标签中可以有多个 <package>,第一个 <package>可以指定一个 Servlet访问路径(不包括动作名),如“ /mystruts”。 extends属性继承一个默认的配置文件“ struts-default”,一般都继承于它,大家可以先不去管它。 <action>标签中的 name属性表示动作名, class表示动作类名。
<result>标签的
name实际上就是
execute方法返回的字符串,如果返回的是“
positive”,就跳转到
positive.jsp页面,如果是“
negative”,就跳转到
negative.jsp页面。在
<struts>中可以有多个
<package>,在
<package>中可以有多个
<action>。我们可以用如下的
URL来访问这个动作:
http://localhost:8080/struts2/mystruts/sum.action
注 : Struts1.x的动作一般都以 .do结尾,而 Struts2是以 .action结尾。
【第 5 步】 编写用户录入接口( JSP页面)
1. 主界面( sum.jsp )
在 Web根目录建立一个 sum.jsp,代码如下:
<% @ taglib prefix = " s " uri = " /struts-tags " %>
< html >
< head >
< title > 输入操作数 </ title >
</ head >
< body >
求代数和
< br />
< s:form action ="mystruts/sum.action" >
< s:textfield name ="operand1" label =" 操作数1" />
< s:textfield name ="operand2" label =" 操作数2" />
< s:submit value ="代数和" />
</ s:form >
</ body >
</ html >
在 sum.jsp中使用了 Struts2带的 tag。在 Struts2中已经将 Struts1.x的好几个标签库都统一了,在 Struts2中只有一个标签库 /struts-tags。这里面包含了所有的 Struts2标签。但使用 Struts2的标签大家要注意一下。在 <s:form>中最好都使用 Struts2标签,尽量不要用 HTML或普通文本,大家可以将 sum.jsp的代码改为如下的形式,看看会出现什么效果:
... ...
求代数和
<br/>
<s:form action="mystruts/sum.action" >
操作数 1: <s:textfield name="operand1" /><br/>
操作数 2: <s:textfield name="operand1" /><br/>
<s:submit value="代数和 " />
</s:form>
... ...
提示一下,在 <s:form>中 Struts2使用 <table>定位。
2. positive.jsp
<% @ taglib prefix = " s " uri = " /struts-tags " %>
< html >
< head >
< title > 显示代数和 </ title >
</ head >
< body >
代数和为非负整数 < h1 >< s:property value ="sum" /></ h1 >
</ body >
</ html >
3. negative.jsp
<% @ taglib prefix = " s " uri = " /struts-tags " %>
< html >
< head >
< title > 显示代数和 </ title >
</ head >
< body >
代数和为负整数 < h1 >< s:property value ="sum" /></ h1 >
</ body >
</ html >
这两个 jsp页面的实现代码基本一样,只使用了一个 <s:property>标签来显示 Action类中的 sum属性值。 <s:property>标签是从 request对象中获得了一个对象中得到的 sum属性,如我们可以使用如下的代码来代替 <s:property value=”sum”/>:
<%
com.opensymphony.xwork2.util.OgnlValueStack ovs =
(com.opensymphony.xwork2.util.OgnlValueStack)request.getAttribute("struts.valueStack");
out.println(ovs.findString("sum"));
%>
启动
Tomcat后,在
IE中输入如下的
URL来测试这个例子:
http://localhost:8080/struts2/sum.jsp
发表评论
-
linux重启oracle 各种方法
2013-01-15 09:53 1320来自 : http://blog.sina.com.cn/s/ ... -
SVN服务器配置
2013-01-10 22:49 1257来自:http://air-blue55.blog.163.c ... -
网页编码就是那点事
2012-11-24 16:10 1045来自 : http://www.kuqin.com/webpa ... -
Tomcat 配置 CAS 的一个问题。unable to find valid certification path to requested target
2012-11-11 21:40 1648来自: http://blog.csdn.net/cool_ ... -
Tomcat SSL配置大全
2012-11-11 21:02 1245来源: http://www.iteye.com/topi ... -
Html中td自动换行问题
2012-10-25 17:57 1099来自:http://blog.csdn.net/dududu0 ... -
oracle 全角、半角转换,和oracle 的 DUMP函数
2012-06-18 09:56 2192to_single_byte(c)转换成半角 to_multi ... -
tomcat sso 配置
2012-05-29 23:18 1670源: http://www.oecp.cn/hi/single ... -
Hibernate 利用配置文件配置HQL/SQL
2012-05-21 17:14 1846Query.hbm.xml <?xml version= ... -
CAS工作流程
2012-05-19 22:25 1616CAS3.0的工作流程: 0.app将用户转发到CAS处, 并 ... -
jforum 表目录
2012-04-18 18:37 3048目 录 1、附件关系表JFORUM_ATTACH 2 2、附件 ... -
Jfroum集成cas单点登录
2012-04-17 21:35 16191.安装CAS 下载cas server ,设置好服务器端, ... -
JForum登录用例
2012-04-15 22:59 61681,键入用户名、密码,单击“登入”按钮,登录请求发送到/JFo ... -
tinyMCE 详细文档
2012-03-28 10:57 2164http://www.iwms.net/n2065c17.as ... -
JBPM3.1.4 相关表的 意义
2012-03-18 22:54 1036JBPM_ACTION action记录表 JBPM_DEC ... -
JBPM环境配置
2012-03-18 18:56 1864jBPM 需要数据库支持, j ... -
xfire 编写webservice例子
2012-02-23 16:51 1092来自 : http://www.blogjava.net/j ... -
ArrayUtils常用的用法
2012-02-21 10:51 1608// 1.打印数组 ArrayUtils.toString(n ... -
Tomcat自动缓存context.xml,导致在eclipse中修改后,不能立即启作用
2012-02-18 11:56 1809http://blog.csdn.net/shiqidide/ ... -
JavaScript CSS Style属性对照表
2012-02-11 22:36 1140CSS语法 (不区分大小写) JavaScript语法 (区分 ...
相关推荐
本教程将深入探讨如何创建并运行你的第一个Struts2程序。 首先,我们需要了解Struts2的核心概念。Struts2框架提供了一种分层架构,它通过Action类处理用户请求,Action类与业务逻辑交互,并通过Result返回视图。...
3. **创建第一个Struts 2应用**:通过创建简单的Action类和配置文件,实现用户请求到响应的过程。 4. **Action和Result**:深入理解Action类的设计和Result的使用,了解不同的Result类型。 5. **拦截器**:学习...
Struts2 Struts2 Struts2 教程 1 1 1 :第一个 Struts2 Struts2 Struts2 程序 在本系列教程中我们将学习到 Struts2 的各种技术。在本教程中使用的工具和程序库的版本 如下: 开发工具: MyEclipse6 Web 服务器: ...
本教程将逐步引导你了解并实践这些核心概念,从创建第一个Struts2项目,到配置Action、编写拦截器、处理表单提交、实现文件上传,再到利用Tiles进行页面布局,一步步深化对Struts2的理解。无论你是初学者还是有经验...
“1 ready.pdf”可能涵盖了如何快速启动一个Struts2项目,包括环境配置、依赖库的引入,以及创建第一个简单的Hello World应用。这部分可能会讲解如何创建和配置struts.xml配置文件,这是Struts2应用的入口点。 “2 ...
"strut2课程源代码第一天及说明"可能包含了逐步的教程,指导你从零开始搭建和运行一个简单的Struts2应用。 标签"struts2例子代码"表明这些源代码包含了具体的操作示例,比如Action类的编写、配置文件的设置、拦截器...
通过本书,读者可以学习如何设置Struts项目环境,创建第一个Struts应用,理解Struts的工作流程,编写Action类,以及使用Struts的标签库简化JSP页面的编写。同时,书中提供的实例将帮助读者巩固理论知识,提高实际...
本教程将指导新手配置第一个基于Struts2的简单登录程序。 首先,你需要从Apache Struts的官方网站下载Struts2的软件包。在编写此教程时,最新版本为Struts 2.0.11.2,但请注意,随着时间推移,可能会有新的版本发布...
struts2学习教程包括:第一个Struts2程序,处理一个form多个submit,struts.xml常用配置解析,使用validate方法验证数据,使用Validation框架验证数据,在Action类中获得HttpServletResponse对象的四种方法,上传...
这个问题搞了一个晚上。(希望对初学的朋友有帮助) 发现不能运行的原因 1、login.jsp的form表格里的action是在struts.xml中<action name="login" class="check.action.LoginAction">的name的属性的名字后面加上....
Struts2是一个流行的Java web应用程序框架,用于构建MVC(模型-视图-控制器)架构的应用。本教程将介绍Struts2的基础知识,适合初学者入门。Struts2是在Webwork的基础上构建的,与它的前辈Struts1.x相比,虽然在大...
### 建立第一个Struts2应用程序:深入解析与实践 #### Struts2入门与环境搭建 在构建第一个Struts2应用程序的过程中,我们不仅需要掌握基本的开发流程,还应了解其与Java、Hibernate和Spring等框架的整合方法。...
7. **编写第一个Action**:创建一个Action类,实现你需要的业务逻辑,并指定结果页面。 8. **编写结果页面**:创建一个JSP页面,用于显示Action执行后的结果。 9. **配置struts.xml**:在struts.xml中配置Action,...
本教程将引导你逐步学习如何创建并运行你的第一个Struts2应用程序。 在开始之前,你需要确保已经安装了Java Development Kit (JDK) 和 Apache Tomcat 服务器,因为它们是运行Struts2应用的基础。此外,你还需要下载...
Struts2是一个强大的MVC(Model-View-Controller)框架,用于开发Java EE的Web应用程序。它在企业级Java应用开发中被广泛使用,尤其是在建立动态Web页面方面。作为一个基于WebWork核心的框架,Struts2在许多方面对...
Struts2是一个强大的Java ...总的来说,Struts2是一个功能强大且成熟的MVC框架,其jar包的引入是搭建Struts2应用的第一步。正确理解和使用这些jar包以及框架的核心概念,能够帮助我们更高效地开发和维护Java Web项目。
Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展且易于管理的企业级Web应用。这个项目教程可能包含了从基础到高级的Struts2应用开发的全方位指导。以下是基于标题、描述和标签的一些关键知识点: 1...
在初学者尝试创建第一个Struts2程序时,可能会遇到一些常见问题。这篇博客将探讨这些问题并提供解决方案。 首先,配置问题是新手经常遇到的挑战。在搭建Struts2环境时,确保正确地在`web.xml`文件中配置了Struts2的...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域中被广泛使用,特别是在企业级应用中。Struts2是Apache软件基金会的开源项目,它继承了Struts1的优点并解决了其存在...
"Struts2-part01"可能包含的是该系列学习的第一部分内容,可能涵盖了Struts2的基础概念、环境搭建、Action的创建和执行、OGNL的基本使用等内容。通过学习这部分代码,开发者能够初步掌握Struts2的基本操作和工作原理...