struts2註解總結----@Action和@Result

除了使用配置文件配置以外,還可以使用註解來配置html

如下是一些常用的註解java

介紹:

@Action/@Actions:

@Action指定一個類爲action,相應配置文件裏的<action>....</action>標籤,當中可以配置例如如下屬性jsp

  1. results:配置返回的結果集屬性,至關於struts2中的<result>列表,可以在{}中配置屬性,詳細例如如下
  2. value:配置action的名字,至關於<action>中的name屬性
  3. interceptorRefs:配置攔截器
@Action可以定義在類上,也可以定義在方法上
例如如下(@Result的做用後面講,也可以和後面的配合着看)
@Action(value = "testAction",results = {@Result(name="success",location="/success.jsp")})
public class testAction extends ActionSupport {

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
}
這就至關於例如如下的xml配置
<action name="testAction" class="struts2.action.testAction">
	<result name="success">/success.jsp</result>
</action>
在xml配置中假設name不寫,那麼默認就是success,在註解中也是,假設results中的name不寫。那麼默認就是success

也可以使用@Actions來指定多個action映射,這樣可以作到一個類相應多個地址映射。例如如下
@Actions({
	@Action(value = "testAction",results = {@Result(location="/success.jsp")}),
	@Action(value = "testAction2",results = {@Result(location="/success.jsp")})
})
public class testAction extends ActionSupport {

	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
}
這是使用/testAction或者/testAction2都可以跳轉到success.jsp上。因爲配置了兩個action映射


在xml配置中,咱們有例如如下的配置方法
<action name="*" class="struts2.action.testAction" method={1}>
	<result name="{1}">/{1}.jsp</result>
</action>
這是xml配置中的通配符方式,即當咱們以add來訪問action時。將會進到action的add方法進行處理。當返回add時會跳轉到add.jsp頁面
在註解中沒有通配符可以使用,但是也可以實現相似的效果,這時@Action就要寫在方法上了,就像如下這樣
public class testAction extends ActionSupport {
	@Action(value = "add",results = {@Result(name="add",location="/add.jsp")})
	public String add() throws Exception {
		return "add";
	}
	@Action(value = "delete",results = {@Result(name="delete",location="/delete.jsp")})
	public String delete() throws Exception {
		return "delete";
	}
}
這樣便實現了上面的效果。這說明@Action也是可以在方法上聲明的(@Actions也可以在方法上聲明)

@Result/@Results:

@Result配置詳細返回結果。在results中使用,也可以單獨在類上使用,有例如如下屬性
ide

  1. name:相應<result>中的name屬性
  2. location:相應<result></result>間的地址
  3. type:相應<result>的type屬性
@Result可以在類上聲明。也可以和Action配置聲明,假設在類上聲明,那麼就是全局的結果,例如如下
@Result(name="delete",location = "/delete.jsp")
public class testAction extends ActionSupport {
	@Action(value = "add", results = { @Result(name = "add", location = "/add.jsp") })
	public String add() throws Exception {
		return "add";
	}

	@Action(value = "delete")
	public String delete() throws Exception {
		return "delete";
	}
}
儘管delete方法沒有指定返回delete時要跳轉到哪一個頁面頁面。但是在類上用@Result聲明瞭,那麼就會找到類上面的這個@Result,而後跳轉到delete.jsp頁面

@Results是用來聲明多個結果集。使用方法和@Actions相似,這裏就再也不詳述
相關文章
相關標籤/搜索