Struts2的第一个应用实例

来源:互联网 发布:数据库业务流程图 编辑:程序博客网 时间:2024/05/18 01:03
 

Struts2的第一个应用实例

10级学员 赵成举课堂笔记

我们搭建好struts2的开发环境,接下来就该写struts2的应用了。

一、struts2包的介绍

首先在struts2.xml文件中配置struts2包,代码如下:

Package包的作用和java项目中包的作用相似,是管理在struts2中的action。一般开发中,都把功能类似的action放在同一包下。

下面介绍一下package中的属性:

       Name属性:用来指定包的名称,包名是用来标识包的,一般都以它操作的类命名,在一个应用程序中,包名必须是唯一的。

       Namespace属性:用来定义包的命名空间,命名空间会作为访问该包下action路径的一部分。

       Extends属性:用来定义该包的继承包,一般包都需要继承struts-default包,struts-default包中定义了struts2中的核心功能(拦截器),如果不继承该包将不能使用struts2的提供的一些服务。Struts-default是在struts-default.xml文件下定义的,该文件位于struts2-core-2.*.*.*.jar下。

       Abstract属性:定义该包是不是抽象包,如果包定义为抽象包,该包下就不能包含action。

 

二、struts2中action的介绍

Action应定义与package中,action属性的介绍:

Name属性:用来指定该action的名称,它跟package的namespace共同组合成访问某个action的路径。如本例题访问helloworld这个action时的完整路径应该为:http://localhost:8080/helloworld/csdn/helloworld.action

Class属性:用来指定action所对应的处理类,需要写上完整的路径名。

       Method属性:用来指定处理类中的哪个方法执行该action操作。

Action标签中的class属性和method属性可以缺省,在缺省的状态下执行struts2中的ActionSupport类中的execute()方法。如果只缺省method就执行指定类的execute()方法(本例题的helloworld.action所执行的就是HelloworldAction中的list()方法)。

我们看到在action标签中还有result标签,result标签用来指定当action执行完需要跳转的视图。

 

三、处理类的介绍

好了,刚才介绍了struts.xml文件中的配置,下面介绍一下处理类:

Strtus2中的处理类可以是普通的java类和可以是继承了ActionSupport的java类。下面我们写两个例子对比一下:

 

这是普通的java类,在struts2中的变量是通过依赖注入的方式来传递值的,所以必须定义get()和set()方法。

 

好了,到这里我们第一个没有继承ActionSupport类的struts2应用就写完了,只需要在index.jsp中调用helloworld.action就行了。

 

Index.jsp文件:

需要注意的是由于是通过依赖注入的方式传递值,所以要传递的参数名称必须跟java类中的set方法set的名称一样。

 

当方法执行完成后还需要跳转到list.jsp界面中,获取传递过去的值并显示到界面上。

List.jsp文件:



 

执行结果如下:

访问http://localhost:8080/helloworld/csdn/helloworld.action并填写要传递的信息

 

点击提交按钮:

 

 

当java类继承ActionSupport时的写法:

HelloworldAction.java文件:

跟不继承ActionSupport类的写法一样,只是多了一个继承的说明:不过在实际开发中需要将一些从界面获取的数据放到Session、Request等对象中,这时候就需要继承ActionSupport类了

 

原创粉丝点击