所以以此篇來說
就不用放置設定檔
首先在放置 pom.xml 放置用得到的 jar
並且設置完基本的 web.xml 設定
連結:設定前置動作
註記型的 struts.xml 不用添加
在講述之前
先快速說明一下要如何進入此情境
以便於日後快速回想
( 缺圖 )
概述
一般頁面
一般頁面但有多個導頁或計算
一般頁面但有多個方法
此次註解說明:
@Namespace : 空間配置
@ResultPath : 默認情況下,它會找到結果頁在 WEB-INF/content/ 文件夾
@Result : 結果參照
@Action : 對應動作
results : 多種結果集合
location : 資源位置
一般頁面
http://localhost:8080/ProjectName/User/hello.action
說明:/User/hello.action 執行 hello 底下的 execute 方法返回的結果對應到上方 Result 所宣告的頁面
package com.brian.example.action;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.ResultPath;
@Namespace("/User")
@ResultPath(value="/")
@Result(name="success",location="/WEB-INF/jsp/hello.jsp")
public class HelloAction {
@Action(value="hello")
public String execute(){
return "success";
}
}
一般頁面但有多個導頁或計算
http://localhost:8080/HelloStruts2Ann/User/userData.action
說明:執行對應的 userData 方法,但可能內部有邏輯判斷影響輸出的頁面我們就會用此結果導致對應頁面。
package com.brian.example.action;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.ResultPath;
@Namespace("/User")
@ResultPath(value = "/")
public class UserDataAction {
@Action(value="userData", results={
@Result(name="success",location="/WEB-INF/jsp/userData.jsp"),
@Result(name="fail",location="/WEB-INF/jsp/fail.jsp")
})
public String userData(){
String aaa = "123";
if("aaa".equals(aaa)){
// doSomething
return "fail";
}
return "success";
}
}
一般頁面但有多個方法
http://localhost:8080/HelloStruts2Ann/User/userData1.action
orhttp://localhost:8080/HelloStruts2Ann/User/userData2.action
說明:藉由不同對應的 uri 對應到對應的方法。package com.brian.example.action;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.ResultPath;
@Namespace("/User")
@ResultPath(value = "/")
public class UserDataAction {
@Action(value="userData1", results={
@Result(name="success",location="/WEB-INF/jsp/userData.jsp")
})
public String userData1(){
return "success";
}
@Action(value="userData2", results={
@Result(name="success",location="/WEB-INF/jsp/hello.jsp"),
@Result(name="fail",location="/WEB-INF/jsp/fail.jsp")
})
public String userData2(){
// return "fail";
return "success";
}
}
參考資料:Struts 2
歡迎轉載,請註明出處。
沒有留言:
張貼留言