Chương này giới thiệu sơ lược về ActionContext và ActionInvocation trong Struts 2.
ActionContext trong Struts 2
ActionContext là một container của các đối tượng mà trong đó action được thực thi. Các giá trị được lưu trữ trong ActionContext là duy nhất cho mỗi Thread. Vì thế bạn không cần tạo Thread safe cho action.
Chúng ta có thể lấy tham chiếu của ActionContext bởi gọi phương thức getContext() của lớp ActionContext. Đây là một phương thức static. Ví dụ:
ActionContext context = ActionContext.getContext();
ActionInvocaion trong Struts 2
ActionInvocation biểu diễn trạng thái thực thi của một action. Nó giữ các action và các đối tượng Interceptor. Struts Framework cung cấp ActionInvocation Interface để xử lý ActionInvocation. Nó cung cấp nhiều phương thức, một số chúng được sử dụng để lấy instance của ValueStack, ActionProxy, ActionContext, Result, …
Các phương thức của ActionInvocation Interface
public ActionContext getInvocationContext(): Trả về đối tượng ActionContext được liên kết với ActionInvocation.
public ActionProxy getProxy(): Trả về instance của ActionProxy mà giữ ActionInvocation này.
public ValueStack getStack(): Trả về instance của ValueStack.
public Action getAction(): Trả về instance của Action được liên kết với ActionInvocation.
public void invoke(): Triệu hồi resource kế tiếp trong tiến trình xử lý ActionInvocation này.
public Result getResult(): Trả về instance của Result.