欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在Struts2中的结果集类型

程序员文章站 2023-11-29 14:14:52
1、每个action方法都返回一个string类型的值,struts一次请求返回什么值是由这个值确定的。 2、在配置文件中,每一个action元素的配置都必须有resul...

1、每个action方法都返回一个string类型的值,struts一次请求返回什么值是由这个值确定的。

2、在配置文件中,每一个action元素的配置都必须有result元素,每一个result对应一个action的返回值。

3、result有两个属性:

name:结果的名字,和action中的返回值一样,默认值为success;

type:响应结果类型,默认值为dispatcher.

在Struts2中的结果集类型下面找到struts-default.xml文件中,如下面所示:

在Struts2中的结果集类型

说明:

1、从上述可以看出总共10种类型

2、默认类型为servletdispatcherresult即转发。

3、结果类型可以是这10种结果类型的任意一种。

dispatcher类型(1)、 说明

dispatcher类型是最常用的结果类型,也是struts框架默认的结果类型。

(2)、 例子

页面参照:/manager/index.jsp

action参照:adminaction

配置文件:struts.xml

在配置文件中,可以有两种写法:

在Struts2中的结果集类型

下面的图说明了location的来历:

在Struts2中的结果集类型

查看源码:

在Struts2中的结果集类型

6.2.2 redirect类型(1)、 说明

redirect属于重定向。如果用redirect类型,则在reuqest作用域的值不能传递到前台。

redirectaction类型(1)、说明

1、把结果类型重新定向到action

2、可以接受两种参数

a)     actionname: action的名字

b)     namespace:命名空间

第一种方式:

<result name="success" type="redirectaction">resulttype/redirectactionaction.action</result>

第二种方式:

<result name="success" type="redirectaction">

     <!--

          actionname:

               请求的action的路径

          namespace:

               如果不写,默认就是请求的action的路径,如果写,路径将被重新赋值

     -->

     <param name="actionname">

          resulttype/redirectactionaction.action

     </param>

</result>

 (2)、 例子

第一种方式:

<result name="success" type="redirectaction">resulttype/redirectactionaction.action</result>

第二种方式:

<result name="success"type="redirectaction">

     <!--

          actionname:

               请求的action的路径

          namespace:

               如果不写,默认就是请求的action的路径,如果写,路径将被重新赋值

     -->

     <paramname="actionname">

          resulttype/redirectactionaction.action

     </param>

</result>


<package name=”ss” namespace=”/csdn/csdn”>

     <action=”delete”>

</package>

<package name=”test” namespace=”/csdn”>

<action=”delete”>

</package>

<package name=”sss” namespace=””>

 <action=”delete”>

</package>

action名称的搜索顺序

1、获得请求路径的uri,例如url是:http://server/struts2/path1/path2/path3/test.action

2.首先寻找namespace为/path1/path2/path3的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package则转步骤3;

3.寻找namespace为/path1/path2的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package,则转步骤4;

4.寻找namespace为/path1的package,如果存在这个package,则在这个package中寻找名字为test的action,如果仍然不存在这个package,就去默认的namaspace的package下面去找名字为test的action(默认的命名空间为空字符串""),如果还是找不到,页面提示找不到action。

action原型struts2

   prototype 原型   每次请求都会创建一个新的action对象


在Struts2中的结果集类型

servlet

   

   singleton 原型   当第一次请求时,创建servlet对象 之后每次都使用该对象即可。

servlet的生命周期

      创建---init---service---destory