读书人

Struts2课程 - 1.4 Web项目中使用Str

发布时间: 2012-09-08 10:48:07 作者: rapoo

Struts2教程 - 1.4 Web项目中使用Struts2初探

在开始创建新的Web项目让其使用Struts2技术之前,请读者先去Struts2的官方网站http://struts.apache.org/2.0.9/index.html?下载Struts2。个人推荐下载struts-2.0.11.1-all.zip,因为它包含了Struts2所有的内容,而且之后的说明和解释都是以该包解压后内容基础上进行的。

如果以上操作都完成了,请解压下载的Struts2开发包(struts-2.0.11.1-all.zip)。会看到图1.4显示的红框中的几个文件夹。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.4? Struts2文件结构图

在上图中除了两个文本文件是介绍license和官方网站介绍外,笔者对五个文件夹的内容逐一介绍。

Apps文件夹中都是使用Struts2的一些官方示例。特别是struts2-blank-2.0.11.1.war是Struts2在Web项目中基础配置的例子。如图1.5所示。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.5? apps文件结构图

Backport文件夹中提供了是一些Struts2使用Java4和Java5互相转化的示例。由于Struts2主要是支持Java5的JDK(Java Develop Kit),而有些公司还在使用Java4即Java1.4的JDK。因此Struts2设计者提供了这两个版本Java互相支持的转化工具和项目的示例。具体内容如图1.6所示。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.6? backport文件结构图

Docs文件夹则是Struts2设计者提供给入门者的所有学习文档,这样初学者可以使用这些文件配合自己实际操作来加深对Struts2的理解。内容如图1.7所示。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.7? docs文件结构图

Lib文件夹提供了Struts2在项目开发中所有应该支持的jar包,读者可以将这些包导入自己开发的Web项目使用的类库中。

注意:不是所有的jar包都是在读者的Web项目中需要的,读者可以选择部分jar包导入到自己的Web项目类库中。一般情况下xwork-2.0.4.jarstruts2-core-2.0.11.1.jarognl-2.6.11.jarfreemarker-2.3.8.jarcommons-logging-1.0.4.jar这些jar包是一定需要导入的。

文件结构图如图1.8所示。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.8? lib文件结构图

Src文件夹是Struts2所有的源代码,因为Struts2也是一个开源的框架之一。因此所有的源代码都开放给开发者,开发者可以去查阅这些代码,了解Struts2的内部或底层实现机制。因此从这一角度来看也是入门者学些Struts2的一个很好的文档资料。如图1.9所示。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.9? src文件结构图

熟悉完Struts2的文件架构后,打开MyEclipse,如图1.10是MyEclipse的整体视图。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.10? MyEclipse开发视图

单击File|New|Project菜单,打开图1.11界面。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.11??新建Web项目界面

选择图1.11中蓝色显示的Web Project项,单击“Next”按钮,打开图1.12界面。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.12??设置新项目属性

在图1.12中,我们在界面中输入项目名称,比如本章是第一章笔者输入的项目名称是C01。项目文件一般都是放在缺省的MyEclipse设置的workspace文件夹下,当然读者也可以把“Use defult location”前的勾去掉,然后单击下一行右侧的“Browse”按钮选择自己想存放的项目路径。余下的都是项目中源代码即Java代码存放的路径和JSP等视图文件存放的路径。还有就是URL,以后项目部署成功后,都是按照这个URL去访问Web系统的。然后可以选择支持的J2EE的版本,这里是选择Java EE 5.0。然后单击“Finsih”按钮就完成Web项目初始配置。一个没有任何Java文件,视图文件以及配置文件的空白项目就如图1.13所示。在这基础上就能方便的把相应的Struts2文件配置在这个项目里。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.13? C01项目基础结构

在此基础上我们将Struts2的lib文件夹中最基本的类库放到C01项目的WEB-INF\lib下。如图1.14所示。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.14

也可右击项目名,在弹出的菜单中选择“properties”属性,如图1.15所示。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.15??单击最下方的“属性”选项

在弹出的视图1.16中选择“Java Build Path”项,然后在右侧第三个选项卡“Libraries”中可以看到已经导入的Struts2的几个jar包。可以单击最右侧的几个选择jar包路径选择新的jar包或更改原有jar包设置按钮。弹出视图如图1.16所示。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.16??导入项目支持的jar包

在图1.13中,在WebRoot/WEB-INF/下有一个名为web.xml文件。该文件是Web项目的属性整体配置文件,特别是一些过滤器,拦截器还有Servlet的配置都在该文件里定义。如果要把Struts2在C01项目中使用,则要把web.xml修改成如下代码:

<!-------------------------------------------文件名:web.xml-------------------------------->

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

???????? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

???????? xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

???????? http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

???????? <filter>

?????????????????? <!--过滤器名字? -->

?????????????????? <filter-name>struts2</filter-name>

?????????????????? <!--?过滤器支持的struts2类? -->

?????????????????? <filter-class>

??????????????????????????? org.apache.struts2.dispatcher.FilterDispatcher

?????????????????? </filter-class>

???????? </filter>

?

???????? <filter-mapping>

?????????????????? <!--过滤器拦截名字? -->

?????????????????? <filter-name>struts2</filter-name>

?????????????????? <!--过滤器拦截文件路径名字? -->

?????????????????? <url-pattern>/*</url-pattern>

???????? </filter-mapping>

???????? <welcome-file-list>

?????????????????? <welcome-file>index.jsp</welcome-file>

???????? </welcome-file-list>

</web-app>

从代码中可知已经将Struts2的过滤转发器的映射以及Struts2拦截的文件路径定义都声明了,具体的代码含义将在之后章节会有介绍,这里只是让读者明白怎么在Web项目里用Struts2。

Struts2还有自己基本的配置文件需要放置在C01项目中,也就是之前介绍过的struts.xml和struts.properties文件。新建这两个文件,将其放在项目的src文件夹下,以后build整个项目时候,它们也会在WebRoot\WEB-INF\classes\中出现。

放置完之后,效果图1.17如图1.17所示。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.17??项目属性文件放置图

图1.17中的messageResource.properties是由struts.properties定义的扩展属性文件。它们之间关系就相当于Java中父类和子类的关系。子类扩展父类。同理也适用于这两个属性文件。现将这三个文件代码内容显示,只不过让读者知道里面有些什么内容,至于这些内容代表含义以后章节会详细介绍。

<!-------------------------------------------文件名:struts.xml-------------------------------->

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<!-- Action所在包定义?-->

<package name="C01" extends="struts-default">

?????????? <!--?全局导航页面定义?-->

?????????? <global-results>

??????????????????? <result name="global">/jsp/login.jsp</result>

?????????? </global-results>

<!-- Action名字,类以及导航页面定义?-->

?????????? <!--?通过Action类处理才导航的的Action定义?-->

?????????? <action name="Login"

??????????????????? style="text-align: justify; line-height: 13pt; background-color: #e0e0e0; font-size: 9pt; color: #000000; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; white-space: normal; text-indent: 18pt;">??????????????????? <result name="input">/jsp/login.jsp</result>

??????????????????? <result name="success">/jsp/success.jsp</result>

?????????? </action>

?????????? <!--?直接导航的的Action定义?-->

?????????? <action name="index" >

??????????????????? <result >/jsp/login.jsp</result>????????????????????

?????????? </action>

</package>

</struts>

<!-------------------------------------------文件名struts.properties-------------------------------->

struts.custom.i18n.resources=messageResource

<!-------------------------------------------文件名messageResource.properties-------------------------------->

user.required=请输入用户名!

pass.required=请输入密码!

请读者看图1.18。


Struts2课程 - 1.4  Web项目中使用Struts2初探

图1.18??项目文件整体结构

该图的文件结构就是笔者配置的使用Struts2的Web项目C01的基础配置,然后就可以在里面新建视图文件和Java文件进行自己的Web项目开发。

通过简单的配置,也可以知道Struts2配置不是很难,而且在MyEclipse帮助下开发工作也是相当快捷的就能完成,并且Struts2提供的学习资料和示例也是非常丰富的,因此学习曲线是相当的平缓。在之后章节,笔者将对Struts2的各个组成部分和技术细节使用代码示例进行说明。

???更多信息请查看?java进阶网?http://www.javady.com?

读书人网 >Web前端

热点推荐