WEB开发网
开发学院软件开发Java Struts 2.1.6 精简实例系列教程:环境的搭建与Hel... 阅读

Struts 2.1.6 精简实例系列教程:环境的搭建与HelloSimple

 2009-09-23 00:00:00 来源:WEB开发网   
核心提示: 看了上面的HelloAction的代码若感到莫名其妙的话,我这里把那些默认的、约定俗成的代码也写出来,Struts 2.1.6 精简实例系列教程:环境的搭建与HelloSimple(6),这样,修改后的HelloAction类如下:package cn.simple.action; import

看了上面的HelloAction的代码若感到莫名其妙的话,我这里把那些默认的、约定俗成的代码也写出来,这样,修改后的HelloAction类如下:

package cn.simple.action;

import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;

@Results({
    @Result(name="success",location="hello.jsp",type="dispatcher")
})
public class HelloAction extends ActionSupport {

    @Override
    public String execute() throws Exception {
        System.out.println("HelloAction execute ... ");
        return SUCCESS;
    }
}

这样就容易明白许多了。解释如下:

name = “success” 跟 Action里的execute()方法的返回值SUCCESS(也可写成“success”)对应,即若此Action类一旦返回SUCCESS,就会跳到对应的这个Result去处理。
location = “hello.jsp”,表示请求由这个Action跳转到hello.jsp这个页面。
type = “dispathcer”,表示转发方式,具体解释见下面。

其中type=”dispatcher”表示请求转发,还有另一种常用的叫做type=”redirect”重定向,在下文会出现。Struts2的请求转发和重定向的区别其实跟Java Servlet里的是差不多的。Servlet里与其功能等价的的代码片断如下:

request.getRequestDispatcher("hello.jsp").forward(request, response);    //请求转发
response.sendRedirect("hello.jsp");    //重定向

两者的区别可以这样理解:请求转发(Dispatcher)在转发到的另一页面(如hello.jsp)还能保留Request域里的东西,而重定向(Redirect)的话,就跟它的名字“重定向”一样,跳到了另一个页面(如hello.jsp),不再跟原来页面(或者一个action、或者一个 Servlet,或者JSP页面)有任何瓜葛,不会保存原来页面Request域的东西。还有一个表面上的区别就是:请求转发(Dispatcher)到另一个页面(如hello.jsp)后,地址栏里显示的仍然是上一个页面(这里称页面不太合适)的路径(如hello.action),而重定向则显示的是新跳到的那个页面的路径。大家自己测试一下,观察一下,其实也挺容易理解的。

Struts 2.1.6 精简实例系列教程第一期——环境的搭建与HelloSimple介绍就到此,敬请期待下文!

上一页  1 2 3 4 5 6 

Tags:Struts 精简 实例

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接