การตั้งค่า action ด้วย annotation ใน struts 2

ใครที่เคยใช้ struts จะรู้ดีว่า action mapping ของ struts นั้นจะใช้ไฟล์ xml เป็นตัวจัดการ นั่นก็คือ ถ้าเราต้องการจะ map action ใน struts เมื่อไหร่เราต้องเข้าไปแก้ไขในไฟล์ xml ซึ่งดูแล้วอาจจะทำให้ไม่สะดวกนัก ถ้าเพื่อนๆ ที่เคยใช้อยู่คิดเหมือนกันกับผม ก็ลองหันมาใช้ annotation ดูครับ วิธีการใช้ annotation ในการ map นั้นก็ไม่อยากครับ

วิธีการใช้ annotation mapping ใน struts 2

1. จากเดิมคลาส action ของ implements com.opensymphony.xwork2.Action ก็ไม่ต้อง implements ครับ

2. สร้างโฟลเดอร์ /results สำหรับเก็บไฟล์ result page แทนที่จะเก็บไว้ใน WEB-INF ครับ

3. ชื่อของคลาส action ของเราจะต้องลงท้ายด้วย Action นะครับ

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
public class HelloWorldAction {

private String message;
@Action(value=”/welcome”,results={@Result(name=”success”,location=”/results/successPage.jsp”)})
public String execute(){
setMessage(“Hello World Annotation Action”);
return “success”;
}

}

4. เพิ่ม property struts.convention.result.path เข้าไปใน struts.properrties แล้วให้มีค่าเป็นโฟเดอร์ที่เราเก็บ result page ไว้ครับ

struts.convention.result.path=/results

5. เพิ่มไลบรารี่ struts2-convention-plugin-xx.jar เข้าไปด้วยนะครับ

เท่านี้เพื่อนๆ ก็จะได้ตัวอย่าง annotation mapping แล้วครับ

ข้อมูลเพิ่มเติม