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

struts2中Action跳转的convention 配置

程序员文章站 2022-06-17 19:31:48
...
本action演示了一个action执行完成后,转到另外一个action的情况。
(1)如果需要内部转发:则在要转到的方法前面定义一个新的action名称,名称为:前一方法名!前一方法返回值.
(2)如果需要外部重定向:则定义一个Result,类型必须为"redirect"。
(3)若即定义了外部重定向Result,也定义了内部转发,显调用时的名称相同,则执行外部重定向Result
package com.abc.domain.access.action.common;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Actions;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

@Controller
@Scope("prototype")
//声明此类为控制层的类,且为prototype模式调用
@ParentPackage(value = "abc-default")
@Results(
{
@Result(name="toShow", location="show.action", type="redirect"),
@Result(name="add", location="add.action", type="redirect")
})


@Namespace("/common/test")
public class TestAction
{

@Actions({
   @Action("show"),
   @Action("one!show")
   }) 
public String show() throws Exception
{  
   return "success";
}

@Actions({
   @Action("add"),
   @Action("two!add")
   }) 
public String add() throws Exception
{  
   return "success";
}

@Action("one")
public String one() throws Exception
{  
  //return "show";   //内部转发到show(),找到名为"one!show"的Action执行
   return "toShow"; //外部重定向到show(),找到名为"toShow"的Result,然后再执行show()
}

@Action("two")
public String two() throws Exception
{  
return "add"; //外部重定向到add(),因为找到了名称为add的Result配置,所以不再去找two!add
}
}