所以以此篇來說
就不用放置設定檔
首先在放置 pom.xml 放置用得到的 jar
並且設置完基本的 web.xml 設定
連結:設定前置動作
註記型的 struts.xml 不用添加
在講述之前
先快速說明一下要如何進入此情境
以便於日後快速回想
( 缺圖 )
概述
一般頁面
一般頁面但有多個導頁或計算
一般頁面但有多個方法
此次註解說明:
@Namespace : 空間配置
@ResultPath : 默認情況下,它會找到結果頁在 WEB-INF/content/ 文件夾
@Result : 結果參照
@Action : 對應動作
results : 多種結果集合
location : 資源位置
一般頁面
http://localhost:8080/ProjectName/User/hello.action
返回的結果對應到上方 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
我們就會用此結果導致對應頁面。
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
http://localhost:8080/HelloStruts2Ann/User/userData2.action
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
歡迎轉載,請註明出處。

沒有留言:
張貼留言