前言
struts2框架apache基金组织下的一个开源框架,基于mvc模式设计的web应用开发框架。struts 2是一个用于开发java ee网络应用程序的开源web应用框架,它利用并扩展了java servlet api,鼓励开发者采用mvc架构。目前struts2的最高版本是2.5(测试版)。
快速入门
1、下载和安装
可以从官网直接下载最新的struts开发包,官网有多个版本,使用的时候下载full版本即可。下载之后,只需要进行解压就可以使用了
2、hello world程序
以下是建立struts2的helloworld程序的详细步骤:
在myeclipse中创建web project
从下载的struts解压文件中导入jar包
说明:这里的jar包为了简洁,建议直接从app目录下的struts2_blank.war中的lib目录下的jar包拷贝过来。这样做的原因是比较省事,自己找jar包太麻烦。
其jar如下:
编写web.xml,添加如下配置:
编写action类文件。在src目录下创建helloworld.java文件,如下:
配置structs.xml
编写jsp页面
启动服务器,在浏览器中就可以看到hello world了。至此,hello world程序建立成功。
struts2项目开发小结
struts2的开发步骤主要分为:
准备jar包,建议直接使用struts-blank.war项目中的jar包,这是该版本最精简的jar包了
在web.xml中添加struts2过滤器的相关配置(这个步骤在整个项目开发过程中只会编写一次)
开发action,针对不同的功能开发不同的action。就像在servlet中开发不同的servlet类似
在struts.xml配置文件中添加上一步骤开发的action的相关配置
编写相关的结果页面
struts2表单处理
我们继续在现在的项目基础上创建一个表单,用以说明struts2中如何接受和设置参数。
创建login.jsp页面如下:
创建loginaction
配置action
创建user类
编写success.jsp和error.jsp文件
success.jsp(省略部分代码)
error.jsp(省略部分代码)
注意在表单name属性的书写格式:<code>user.username</code>。但是我们在loginaction中并未使用任何初始化的方法构造user对象,那么值是怎么传递过来的呢?在struts2中使用了自动绑定的机制,当loginaction中获取<code>user.username</code>属性的时候,实际上会执行以下过程:
除了以上的方式,还可以使用action属性获取jsp页面表单的值,就是form表单的属性写在action中,然后添加set和get方法,同样可以获取。不过个人感觉这种方式没有上一种简洁,所以就不贴代码了。
struts2访问request、session和application对象
在struts2中有多种方式可以访问以上三个对象,但可以分为两类:与servlet api解耦的访问方式(也是个人推荐使用的方式,一目了然,简单清晰)和与servlet api耦合的访问方式。下面介绍与servlet api解耦的方式。
通过访问com.opensymphony.xwork2.actioncontext类可获取以上三个对象,方式如下:
然后在success.jsp页面访问以上对象设置的值: