struts-2.3.4.1自带示例程序struts2-blank.war的入门学习(高手绕行)

一直没用过大名鼎鼎的Struts2,网上找了很多示例程序,总是不尽人意。下载完struts-2.3.4.1,简单浏览了一下目录结构,突然想到,不如用下载包中自带的示例程序进行学习,保证是最新的Struts2,而且示例较权威。以下是我的学习步骤,写出来供初学者参考,struts大牛如果有时间看的话,也希望能够提一些宝贵的意见。
[b]1.[/b] 首先到http://struts.apache.org/download.cgi#struts2341页面下载最新版本的Struts2。这里我们下载完整版的Full Distribution:struts-2.3.4.1-all.zip (76mb) (简洁起见,类似这种我就不截图了)
[b]2.[/b] 解压,打开,我们看到有apps,docs,lib,src四个文件夹,见名知意,我就不翻译了。这里我只看了apps里面的内容,英文不太好,docs里面的内容我没有仔细研究,都直接google中文资料了,另外apps里面对应的示例文件夹里,也包含了源代码文件,所以这里src也可以不看。
[b]3.[/b] 进入apps,看到四个war包,用winrar解压struts2-blank.war,留作以下使用。这里我们先只研究这一个包。当然如果你只是想运行,而不看代码的话,直接把此war包放到容器的的项目路径,启动容器就可使用这个struts2-blank。
[b]4.[/b] 现在我们用自己的IDE建一个web project,在这里我将project命名为struts2-blank,并且指定context url为struts2-blank。依次装上一步解压后的war包对就文件复制到web project对应路径下,下面我依次复制。这里我用的是MyEclipse10。
4.1 web.xml.
首先用在解压好文件夹里找到struts-2.3.4.1\apps\struts2-blank\WEB-INF\web.xml替换掉项目struts2-blank中对应WEB-INF\web.xml文件。打开web.xml,我们看到
    
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

通过配置这个Filter,启动Struts框架,StrutsPrepareAndEXecuteFilter()方法中将会读取类路径下的默认文件struts.xml完成初始化操作。Struts将struts.xml文件内容,以javabean的形式存放在内存中,从而不必重复读取struts.xml文件。
4.2 struts.xml
在解压好的文件夹里找到struts-2.3.4.1\apps\struts2-blank\WEB-INF\src\java\struts.xml,复制到项目struts2-blank的src下,Myeclipse会自动将struts.xml布署到WEB-INF\classes下的。
同时将同一目录下example.xml文件复制过去。
    <package name="default" namespace="/" extends="struts-default">
<default-action-ref name="index" />

<global-results>
<result name="error">/error.jsp</result>
</global-results>

<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="error"/>
</global-exception-mappings>

<action name="index">
<result type="redirectAction">
<param name="actionName">HelloWorld</param>
<param name="namespace">/example</param>
</result>
</action>
</package>
<include file="example.xml"/>

首先配置package,在这里我感觉name属性不太重要,只要不重名就行,namespace属性比较重要,指定了是发布以后的访问的路径,也就是url的一部分。
然后是是指定该package下默认的action,这里默认跳转到index,而在index下又进行了重定向到/example/HelloWorld.第5步详细解释
为了清晰起见,在这里用include文件的方式,在example.xml中指定其它action.这里不一一解释。
4.3 lib包
将struts-2.3.4.1\apps\struts2-blank\WEB-INF\lib文件夹下的包复制到项目struts2-blank中对应WEB-INF\lib下,原因不解释。
4.4 jsp文件
将struts-2.3.4.1\apps\struts2-blank\下的example文件夹复制到项目struts2-blank的WebRoot目录下。
4.5 java文件
将struts-2.3.4.1\apps\struts2-blank\WEB-INF\src\java下example文件夹复制项目struts2-blank下的src下。
[b]5. [/b] 运行
布署程序到tomcat下。run servler
在浏览器访问http://localhost:8080/struts2-blank/example/HelloWorld.action,既可成功看到
[img]http://dl.iteye.com/upload/attachment/0076/7598/505824c6-d0cd-35cc-ba60-d804755f9eb1.png[/img]
由于我们在4.2中配置了所以在url,http://localhost:8080/struts2-blank/下随便输入其它地址,都会跳转到index,然后index再重定向到HelloWorld,返回页面与上面的相同
如我们随便输入访问http://localhost:8080/struts2-blank/aaaaaa 同样会返回以上页面。
[b]6.[/b] 关于package.properties
这个示例同样实现了语言的国际化,通过对package.properties的配置,实现了多语句,开始我也很奇怪在配置文件中没有指定读取package中的多语内容。后来上网查了一下,是这样解释的:
[quote]在java的包下放置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。当查找指定key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件中寻找。 [/quote]
例如我们如果要增加中文包,只需增加文件package_zh_CN.properties
下面是我在加了中文包后访问helloworld的页面
[img]http://dl.iteye.com/upload/attachment/0076/7629/b18f6b63-491b-36b2-8460-e02d64f0f25c.png[/img]
由于框架会自动检测当前系统语言,所以不需要任何配置,显示即为中文。当然你也可以在jsp中添加中文链接。
先就写到这里吧,共同学习,欢迎留言讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值