Struts2_HelloWorld

来源:互联网 发布:淘宝上的白酒能买吗 编辑:程序博客网 时间:2024/04/29 14:38

HelloWorld_1

我们首先会讲Action,我这么一说大家可能会晕,Struts 2 是个什么样了,我还不知道了,上来就开始讲Action?,,没事的,大家先跟我做操作,HelloWorld,做完之后,再来给大家做解释Struts 2 到底是个什么东西,

第一步,新建 一个 Web 项目

打开 MyEclipse IDE工具,new 一个 Web Project ,起名 为 Struts2_0100_Introduction

我这样起名的话了,下一个项目就会叫0200 ,如果两个项目之间要加新的项目我们就叫做0150,所以我们给它留一点预留的空间,

建议大家选上 Java EE 5.0 ,这样的话如果你用JSTL这类的就会自动的帮你给加上了,不用你手动设置了,所以用JAVA EE5.0 ,点击Finish ,完成。

Struts <wbr>2

 

建完这个项目之后,有几个地方需要你设置,这个你要小心,

第一个 :设置 Tomcat的位置

找到Window   Preferences   找到 MyEclipse  Enterprise Workbench 找到 Servers ,我们要设置 Tomcat的 位置,因为将来我们的系统要部署到Tomcat上面,选择 Tomcat的位置,选中 Enable ,点击OK,如下图所示:

Struts <wbr>2

 

第二个 :设置 JDK 的位置。

Window  Preferences   Java  Installed JREs

 

我这里用的是 JRE ,并不是JDK ,   JDK是包含调试的,JRE了是不包含调试的,如果你不放心,你就在这里吧你下载的那个JDK给加进来,点右边的 Add  Standard VM,选择你自己的JDK ,这样你就放心了,

然后把你自己的JDK打上勾,就可以了,这样将来我们默认用的就是它了。如下图所示:

Struts <wbr>2

 

确认一下,如下图位置的 JRE System Library 是不是你自己安装的 JDK,

Struts <wbr>2

 

Java EE 5 的Library实际上是MyEclipse自带的,这个大家不用管它。

好这个项目的框架我们就搭好了。

框架搭好之后了,我们要做的是一个Struts 2的项目,

Struts 2的软件了相信大家已经下载了,我希望大家养成一个习惯,任何的东西,下载了以后,先大致的浏览一下,

src 源码,

lib用到的类库

docs文档,

apps  applications的示例程序 我们要用的是 apps,它的里面有5个war文件,war文件时可以用 解压缩软件直接打开的,所以你用解压缩软件将其打开,并且将其 解压。

我们解压的是 struts2-blank-2.0.14,也就是空的,最基本的这样的一个示例程序,

第二步,拷贝 strut.xml的配置文件

先把 WEB-INF下面的classes下面的struts.xml的配置文件拷贝到我们自己的项目中的Sources目录下(即src目录下),因为Sources目录编译完之后就默认将其放到 classes目录下面去了。这是拷文件,除了文件之外,我们还需要拷类库,

第三步,拷贝 类库,即Struts 2 所需要的JAR文件,

和刚才一样,还是从刚才的项目里面拷贝

 

有的时候你自己做实验,你不拷这个commons-io.jar ,项目也能完成,这个JAR吧偶是将来需要,不过你要是写上传下载文件这个东西就需要了。保险起见一起拷贝过去。

Struts <wbr>2

 

当大家拷贝好之后,从这里是看不到的,因为这个视图是 Package Explorer,如果大家想看到应该Window Show View  Others 打开 Navigator  视图

 Struts <wbr>2

在这个视图中,你可以清楚的看到你的这个项目在硬盘上的情况, 大多数的操作还是在Package Explorer 视图里面。

 

第四步 ,配置 web.xml文件。

这个也可以参考给我们提供的示例程序的项目,

找到一个web.xml文件,把关于filter的配置部分拷贝到我们的项目中。

 

 Struts <wbr>2

有人说老师您够土的啊,这个都背不过,谁背谁傻瓜,千万别背这些东西,哪些配置什么的,在你真正参加开发之后,绝对是copy ,改,这个没有什么技术含量,

这里有一个地方需要大家注意,配置的这个<filter-class>

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

这里的ng叫做next generation 叫做下一代的filter,2.1,注意了2.1和2.0是不一样的,2.0这里面用的是dispatcherFilter,所以你在参考资料的时候也要小心一点,咱们现在讲的是2.1,这个类了是 Struts 的准备和执行的filter,所以通过这个名字,我相信有的同学它肯定会猜得出来,原来叫做dispatcherFilter,现在叫做 StrutsPrepareAndExecuteFilter,这个两者到底有什么区别了?这里面分了两个,一个是Prepare,一个叫做Execute,原来就一个,。当我们看他的源码的是旧可以知道这里面调用了两个filter,一个是Prepare,一个叫做Execute。

这里的filter-mapping,大家记住了对于Struts 2 来说,这里的<url-pattern>/*</url-pattern>你就永远这么写,斜杠星,即  /*    不要写什么别的内容,不要写 /*.action ,/*.do,这些都不要。如果你写 /*.action ,虽然好使,但是约定俗成,就是 /* ,所以你就这么写就可以了。

直接写 *.action就会映射所有的action,,写/*.action ,只能映射根目录下的action,我想他应该内部程序就是这样写的,有的人会说,老师它有病啊,它为什么不能映射所有的action了?这个你不能问我,你需要问 Struts 2 的开发人员,

ok 这样就配置完了。

 

当我们把这个项目基本的东西准备完成之后,我们来把这个项目改成我们想要的内容,src目录下面我们有个文件叫做 struts.xml,这个文件大家可以把 <struts>标签里面的东西全部给注释掉 ,建议大家是注释,而不是删除,因为当你自己写的时候还可以做参考。

 

下面我们动手做一个配置,这个大家写也可以,copy也可以,把两个 package之间的内容拷贝过来,

这里面有一个配置叫做 action,名字我们改一下叫做hello,其他的我们都不改,如下图所示:

 

在action里面有一个result,把result的类型去掉,把它的param也去掉,result里面就写一句话 ,即 /Hello.jsp  ,我这样一些,必须在我们的根目录下面有一个叫做Hello.jsp的文件才可以,最简单的就是在index.jsp上面 右键  Refactor  Rename ,改名 Hello.jsp 即可。

 Struts <wbr>2

我们把这个Hello.jsp页面打开,

它默认的是 MyEclipse Visual JSP Dedigner  打开的,上面是图形界面,下面是文本编辑器,打开的比较慢,所以我直接用 JSP Editor 打开它,修改一下里面的 内容和title ,如下图所示

Struts <wbr>2

 

OK ,我们就是写好了,

我用的是MyEclipse 7.0 ,它有一个好处,直接可以 Debug As   -->  MyEclipse Server Application

Struts <wbr>2 

可以把这个项目作为Server Application 直接运行,然后你可以选择你刚才配置好的那个服务器,

 

启动完成之后了我们要访问它,

Struts <wbr>2

访问的时候可以用自己的浏览器,也可以用内嵌的浏览器,用哪个都可以。

访问 http://localhost:8080/  大家看我的习惯是先测试一下Tomcat 正常不正常。

Struts <wbr>2

 

这个说明Tomcat服务器是正常的,这就是循序渐进的调试,虽然这个东西操作比较小,但是这个习惯其实很重要,调试程序要循序渐进,而不是想着把2万行代码写完了再去调试,那样的话,你费的力气就大多了,这个名字太长不好敲,点右键   Copy Qualified Name

Struts <wbr>2

粘帖就可以了,即 http://localhost:8080/Struts2_0100_Introduction 此时如果我们直接回车,是没有任何内容可以显示的,而且还报了如下的错误,

Struts <wbr>2

 

这个原因是我们在struts.xml配置文件里面写了一个namespace叫做  /,

好这个namespace 简单解释,和大家在这里访问的路径一一对应,所以这个斜杠就跟我们的路径是一一对应的,我们下面没有那种默认的处理,所以你直接敲 斜杠 它会出错,不过我们在这个里面有一个hello,所以在这个namespace的斜杠后面敲hello.action ,即

http://localhost:8080/Struts2_0100_Introduction/hello.action 回车,OK,大家请看,它显示的是什么内容了?是不是我们Hello.jsp当中的内容啊,?是的。

Struts <wbr>2

 

也就是说我们访问的是hello.action,它给我们了一个result ,在Struts 2 里面,后面的 .action 是可以省略的,即 http://localhost:8080/Struts2_0100_Introduction/hello 因为它默认的配置就是你可以省略,你不要敲那个 .action直接敲hello就可以了,待会再给大家讲为什么 我们访问 hello的时候了,显示的就是 Hello.jsp当中的内容?

来源: <http://blog.sina.com.cn/s/blog_5e3c5e230100f9mn.html>

 

0 0
原创粉丝点击